2024-04-26 11:57:02 发布
网友
比如说,
对于坐标图像(X,Y),即(576,0)到(7261371),我想知道哪些坐标的像素强度范围为红色[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) for p in coords: px = (p[0],p[1]) print (px) # 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)
区域掩码:
彩色遮罩:
组合遮罩:
遮罩图像:
坐标表:
(6, 128) (7, 122) (7, 125) ... (63, 125) (63, 126) (63, 134) (63, 135)
这里有一种使用Python/OpenCV/Numpy实现这一点的方法
输入:
区域掩码:
彩色遮罩:
组合遮罩:
遮罩图像:
坐标表:
相关问题 更多 >
编程相关推荐