开发者社区> 问答> 正文

查找范围内的特定坐标像素,该范围内的像素强度也处于该范围内

例如,

对于坐标图像(X,Y),即(576,0)直到(726,1371),我想知道哪个坐标的像素强度在红色[165至225]绿色[176至200]和蓝色[186至198]范围内]。

输出代码是坐标。

展开
收起
祖安文状元 2020-02-21 14:01:47 417 0
1 条回答
写回答
取消 提交回答
  • 这是使用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)
    
    2020-02-21 14:02:04
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
重新定义计算的边界 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载