python - 如何在图像上选择区域并提取该特定区域数量的像素值?
问题描述
我想使用鼠标事件在图像上选择一个矩形区域,并将矩形内的像素值提取为列表或数组或元组,但不是返回裁剪图像的图像裁剪。我没有找到如何实现这一目标的方法。
有谁知道实现这一目标的任何方法或任何提示或建议?
非常感谢您的阅读。
解决方案
要使用的功能是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")
推荐阅读
- java - 如何使用按钮打开框架并关闭旧框架?
- r - 将数字字段 (YYYY.WW) 转换为 ISOweek() 日期字段
- amazon-web-services - 使用 scp 将文件从本地复制到 aws ec2 时出错
- windows - 制作可启动的 Windows 10 USB / 启动它
- c - 检查 `read` 是否会在不消耗任何数据的情况下返回 EOF
- java - 使用另一个类 JavaFX 更改矩形的属性
- vb.net - 无法读取文本文件,因为它被另一个进程 VB.Net 打开
- c# - IIS 重写模块 Windows 身份验证
- python - 告诉 pip install *从不*去网络并*总是*从本地目录下载
- javascript - 如何将新数据添加到 D3js 循环打包?