【问题标题】:How to select region on image and extract pixel values in numbers of that particular region?如何选择图像上的区域并提取该特定区域数量的像素值?
【发布时间】:2021-09-26 11:27:28
【问题描述】:

我想使用鼠标事件在图像上选择一个矩形区域,并将矩形内的像素值提取为列表、数组或元组,但不是返回裁剪图像的图像裁剪。我没有发现如何实现这一点。

有没有人知道实现此目的的任何方法或任何提示或建议?

非常感谢您的阅读。

【问题讨论】:

  • selectROI。不,你不想“画”一个矩形。那不是目标。您想以交互方式选择一个矩形区域。
  • 好的,谢谢你的建议,我也会修改问题。

标签: python image opencv python-imaging-library scikit-image


【解决方案1】:

要使用的函数是cv.selectROI

它可以采用不同的参数。最简单的情况就是拍摄一张图片(numpy 数组)。这是一个还指定了窗口名称的示例。

我个人也更喜欢使用fromCenter 参数。

import numpy as np
import cv2 as cv

im = cv.imread(cv.samples.findFile("lena.jpg"))

bbox = cv.selectROI("lena", im, fromCenter=True)
cv.destroyWindow("lena")

print("region:", bbox)

(x,y,w,h) = bbox

subregion = im[y:y+h, x:x+w]
cv.imshow("lena subregion", subregion)
cv.waitKey(-1)
cv.destroyWindow("lena subregion")

【讨论】:

  • OpenCV 的 imread 应该能够已经读取 .tif 图像。如果没有,tifffile package 可以有效地处理非常大的 TIFF 文件。 skimage.io 似乎也可以使用该软件包。
  • 是的,它确实读取了我的 tif 图像,OpenCV 读取了图像,但它无法执行其方法,例如选择 ROI 和其他一些方法,这就是我问的原因。
  • 你应该打开一个新问题,并提供所有信息
猜你喜欢
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 2011-11-09
  • 2021-12-09
  • 1970-01-01
相关资源
最近更新 更多