我有一个能够识别水果的应用程序。到目前为止,我已经制作了你可以裁剪图像并获得你想要的水果的颜色。现在我想要获得水果的圆度,但我需要水果是黑色的,背景是白色的,所以我可以找到面积和圆度值。到目前为止,这是我的代码:
crop_temp = rgb2gray(crop);
threshold = graythresh(crop_temp);
bw = im2bw(crop_temp,threshold);
imshow(bw)
当裁剪图像时裁剪传递。当水果有相机闪光灯且该部分保持白色时,问题就出现了。
示例图像是这张柠檬图片:
问题是在代码之后柠檬的白色区域保持白色,但我想要它,以便整个柠檬是黑色的。但不仅仅是柠檬,还有其他水果。
问题是在代码之后柠檬的白色区域保持白色,但我想要它,以便整个柠檬是黑色的。但不仅仅是柠檬,还有其他水果。
是的,你怎么能让水果变成白色,背景是黑色的。 我是图像处理的新手,所以不要跳我。我找不到具体的东西。
答案 0 :(得分:0)
蛮力方法是检查图像中的每个白色像素,看看它是否被X和Y方向的黑色像素装箱,如果是这种情况则将其变为黑色。这会照顾你的水果中的斑点,除非你的水果形状奇怪,或者你的图像边缘有很多噪音,否则不应该给你太多假阳性。
答案 1 :(得分:0)
试试这个:
fbw = ones(size(bw))-imfill(ones(size(bw))-bw);
imshow(fbw)
答案 2 :(得分:0)
你可以从这个Matlab demo开始练习,在图像中分割(和计数)米饭。特别是估计背景的部分。
阅读Otsu's method以及SO和DSP上考虑到本地统计数据的背景/前景估算这两个问题也很有帮助。