2

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

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

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

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

在此处输入图像描述

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

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

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

4

3 回答 3

0

蛮力方法是检查图像中的每个白色像素,并查看它是否在 X 和 Y 方向上都被黑色像素包围,如果是这种情况,则将其变为黑色。这将处理水果内部的斑点,并且不应该给你太多的误报,除非你的水果形状奇怪,或者你的图像边缘有很多噪点。

于 2012-07-18T19:40:32.953 回答
0

试试这个:

fbw = ones(size(bw))-imfill(ones(size(bw))-bw);
imshow(fbw)
于 2012-07-18T20:14:59.860 回答
0

您可以从使用这个Matlab 演示开始练习,在图像中分割(和计数)大米。特别是估计背景的部分。

阅读Otsu 的方法以及关于SODSP的背景/前景估计的这两个问题也很有帮助,其中考虑了本地统计数据。

于 2012-07-19T13:30:38.843 回答