我想获取图像中蓝点的像素坐标。
为了获得它,我首先将其转换为灰度并使用阈值功能。
import numpy as np
import cv2
img = cv2.imread("dot.jpg")
img_g = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret1,th1 = cv2.threshold(img_g,127,255,cv2.THRESH_BINARY_INV)
如果我想获得强度为255的像素位置,该怎么办?请告诉您是否有一些更简单的方法可以做到这一点。
最佳答案
我认为这不会像您期望的那样起作用。
通常,为了在具有特定颜色的形状上获得稳定的跟踪,可以在RGB / HSV / HSL平面中执行此操作,您可以从 HSV 开始,它在照明方面更强大。
1-使用cv2.cvtColor()
转换为HSV
2-使用cv2.inRagne(blue_lower, blue_upper)
“过滤”所有不需要的颜色。
现在,您有了一个只有蓝色的美观二进制图像(假设您具有静态背景或应添加更多滤镜)。
3-现在,如果要检测点(通常超过一个像素),可以尝试cv2.findContours
4-您可以使用多种方法来获得轮廓的x,y像素(取决于您要检测的形状),例如cv2.boundingRect()
关于python - 在python opencv中获取强度为255的二进制图像的像素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61982405/