如何 select 图像上的区域并提取该特定区域的像素值?

How to select region on image and extract pixel values in numbers of that particular region?

我想 select 使用鼠标事件在图像上创建一个矩形区域,并将矩形内的像素值提取为列表、数组或元组,而不是 returns 的图像裁剪裁剪后的图像。我找不到实现此目标的方法。

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

非常感谢您的阅读。

要使用的函数是cv.selectROI

它可以接受不同的参数。最简单的情况就是拍摄图像(numpy 数组)。这是一个示例,其中还指定了 window 名称。

我个人也更喜欢使用 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")