2012-07-18 51 views
2

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

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

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

一个例子形象是这样的柠檬图片:

enter image description here

的问题是白色区域的柠檬停留在代码后,白色的,但我想它使整个柠檬是黑色的。但不仅仅是柠檬,还有其他水果。

问题是在代码后柠檬中的白色区域保持白色,但我希望它使整个柠檬是黑色的。但不仅仅是柠檬,还有其他水果。

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

回答

0

试试这个:

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

谢谢,帮助。 – 2012-07-19 16:47:33

0

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

0

您可以通过图像与该Matlab demo练习,分段(计数)大米开始。尤其是估计背景的部分。

也有帮助将阅读Otsu's method和这两个问题的背景/前景估计SODSP考虑本地统计。

+0

我会检查你所说的演示。谢谢您的帮助。 – 2012-07-19 16:47:44