如何使整个水果是白色的,背景是黑色的

时间:2012-07-18 19:08:04

标签: matlab image-processing

我有一个能够识别水果的应用程序。到目前为止,我已经制作了你可以裁剪图像并获得你想要的水果的颜色。现在我想要获得水果的圆度,但我需要水果是黑色的,背景是白色的,所以我可以找到面积和圆度值。到目前为止,这是我的代码:

    crop_temp = rgb2gray(crop);
    threshold = graythresh(crop_temp);
    bw = im2bw(crop_temp,threshold);
    imshow(bw)

当裁剪图像时裁剪传递。当水果有相机闪光灯且该部分保持白色时,问题就出现了。

示例图像是这张柠檬图片:

enter image description here

问题是在代码之后柠檬的白色区域保持白色,但我想要它,以便整个柠檬是黑色的。但不仅仅是柠檬,还有其他水果。

问题是在代码之后柠檬的白色区域保持白色,但我想要它,以便整个柠檬是黑色的。但不仅仅是柠檬,还有其他水果。

是的,你怎么能让水果变成白色,背景是黑色的。 我是图像处理的新手,所以不要跳我。我找不到具体的东西。

3 个答案:

答案 0 :(得分:0)

蛮力方法是检查图像中的每个白色像素,看看它是否被X和Y方向的黑色像素装箱,如果是这种情况则将其变为黑色。这会照顾你的水果中的斑点,除非你的水果形状奇怪,或者你的图像边缘有很多噪音,否则不应该给你太多假阳性。

答案 1 :(得分:0)

试试这个:

fbw = ones(size(bw))-imfill(ones(size(bw))-bw);
imshow(fbw)

答案 2 :(得分:0)

你可以从这个Matlab demo开始练习,在图像中分割(和计数)米饭。特别是估计背景的部分。

阅读Otsu's method以及SODSP上考虑到本地统计数据的背景/前景估算这两个问题也很有帮助。