【发布时间】:2020-10-24 17:43:18
【问题描述】:
我需要将接近白色的像素转换为白色,将接近黑色的像素转换为黑色。
我在python中找到了一个代码sn-p,说明如何做到这一点。
hsv=cv.cvtColor(image,cv.COLOR_BGR2HSV)
# Define lower and upper limits of what we call "brown"
brown_lo=np.array([10,0,0])
brown_hi=np.array([20,255,255])
# Mask image to only select browns
mask=cv.inRange(hsv,brown_lo,brown_hi)
# Change image to red where we found brown
image[mask>0]=(0,0,255)
我已经将它转换为java,如下所示。
Mat temp= new Mat();
Imgproc.cvtColor(src,temp,COLOR_BGR2HSV);
Scalar low= new Scalar(10,0,0);
Scalar high= new Scalar(20,255,255);
Mat mask = new Mat();
inRange(temp,low,high,mask);
但我在将以下语句转换为 java 时遇到问题,并且 java 中没有带有示例的好的 opencv 文档。
image[mask>0]=(0,0,255)
有人能帮忙把上面的语句转换成java吗...?
我已经尝试过 setTo,但它没有给出想要的行为(下面附上截图)。请参阅https://stackoverflow.com/a/50215020/12643143 了解预期结果。
src.setTo(new Scalar(0,0,255),mask);
【问题讨论】:
标签: java python numpy opencv cv2