例如,
对于坐标图像(X,Y),即(576,0)直到(726,1371),我想知道哪个坐标的像素强度在红色[165至225]绿色[176至200]和蓝色[186至198]范围内]。
输出代码是坐标。
这是使用Python / OpenCV / Numpy做到这一点的一种方法。
为该区域创建遮罩 从颜色创建蒙版 结合口罩 获取组合蒙版不是黑色的坐标
import cv2
import numpy as np
# load image
img = cv2.imread("monet2.jpg")
# create region mask
mask1 = np.zeros_like(img)[:,:,0]
mask1[0:0+75, 90:90+75] = 255
# create color mask
lower =(0,100,150) # lower bound for each channel
upper = (40,160,2100) # upper bound for each channel
mask2 = cv2.inRange(img, lower, upper)
# combine masks
mask3 = cv2.bitwise_and(mask1, mask2)
# get coordinates
coords = np.argwhere(mask3)
print(coords)
# apply mask to image (to see where data is obtained)
mask3 = cv2.merge([mask3,mask3,mask3])
img_masked = cv2.bitwise_and(img, mask3)
# display images
cv2.imshow("mask1", mask1)
cv2.imshow("mask2", mask2)
cv2.imshow("mask3", mask3)
cv2.imshow("img_masked", img_masked)
cv2.waitKey(0)
# write results to disk
cv2.imwrite("monet2_mask1.jpg", mask1)
cv2.imwrite("monet2_mask2.jpg", mask2)
cv2.imwrite("monet2_mask3.jpg", mask3)
cv2.imwrite("monet2_masked.jpg", img_masked)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。