分割树叶(数字图像处理)

矫情吗;* 2022-06-04 05:37 470阅读 0赞

(1)提出问题:
(2)分析问题 :
(3)解决问题 :

问题:

在一幅图像中,若含有一片树叶, 那么,如何将图像中的树叶分割出来? 
图一

分析:
从上到下,从左到右,依次扫描图像,将上下左右出现的第一个黑色像素点记录下来,然后进行分割:
图二

实现:

  1. I=imread('shuye.bmp');//读入一副图象
  2. bw=im2bw(I);
  3. [y,x]=size(bw);
  4. left=zeros(1,y);从左开始扫描
  5. for j=1:y
  6. i=1;
  7. while((i<=x)&&(bw(j,i)==1))
  8. i=i+1;
  9. end
  10. if(i<x)
  11. left(j)=i;
  12. else
  13. left(j)=x;
  14. end
  15. end
  16. leftlocation=min(left);
  17. right=zeros(1,y);//从右开始扫描
  18. for j=1:y
  19. i=x;
  20. while((i>=1)&&(bw(j,i)==1))
  21. i=i-1;
  22. end
  23. if(i>=1)
  24. right(j)=i;
  25. end
  26. end
  27. rightlocation=max(right);
  28. top=zeros(1,x);//从上开始扫描
  29. for i=1:x
  30. j=1;
  31. while((j<=y)&&(bw(j,i)==1))
  32. j=j+1;
  33. end
  34. if(j<y)
  35. top(i)=j;
  36. else
  37. top(i)=y;
  38. end
  39. end
  40. toplocation=min(top);
  41. bottom=zeros(1,x);//从下开始扫描
  42. for i=1:x
  43. j=y;
  44. while((j>=1)&&(bw(j,i)==1))
  45. j=j-1;
  46. end
  47. if(j>=1)
  48. bottom(i)=j;
  49. end
  50. end
  51. bottomlocation=max(bottom);
  52. clip=imcrop(bw,[leftlocation toplocation rightlocation-leftlocation bottomlocation-toplocation]);//分割
  53. imshow(I);
  54. figure;
  55. imshow(clip);//显示

发表评论

表情:
评论列表 (有 0 条评论,470人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数字图像处理-图像压缩

    图像压缩介绍 概念 图像压缩是图像编码的一种典型用途。数据压缩的对象是数据,大的数据量并不代表含有大的信息量。图像压缩就是除去图像中多余的数据而对信息没有本质的影响

    相关 数字图像处理

    1 数字图像处理的概念 1.1 什么是图像? 定义为二维函数f(x,y),其中x,y是空间(平面)坐标,f是点(x,y)的幅值。 1.2 什么是数字图像?