b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

“数字图像处理”实验十区域增长图像分割算法

电脑杂谈  发布时间:2021-01-12 18:17:44  来源:网络整理

数字图像处理”实验十区域增长图像分割算法

matlab数字图像处理

*********************************************** *************************

>文件名:“数字图像处理”实验10区域增长图像分割算法实验报告

>作者:罗天汉

>学生编号:16121141

>邮件:

*********************************************** *************************

参考文章

该算法的优缺点

数字图像处理实验 灰度图像处理_二值图像与灰度图像_数字图像处理实验 灰度图像处理

区域增长是串行区域分割的图像分割方法。它的优点是基本思想相对简单。它通常可以分割具有相同特征的互连区域,并提供良好的边界信息和分割结果。如果没有可用的先验知识,则可以获得最佳性能,并且可以将其用于分割更复杂的图像,例如自然风光。然而,区域生长方法是迭代方法,并且空间和时间成本相对较大。噪声和灰度不均匀可能会导致孔洞和过度分割,并且在处理图像的阴影效果时通常效果不是很好。

算法描述

区域增长的基本思想是将具有相似属性的像素分组以形成区域。具体来说,首先为每个需要分割的区域找到一个像素,作为增长的起点,然后在像素周围的邻域中选择与像素具有相同或相似属性的像素(根据特定像素确定)预定的增长或相似度标准)合并到像素所在的区域。将这些新像素用作新的像素,以继续上述过程,直到不再包含满足条件的像素为止,从而增大了面积。

区域增长是指从某个像素开始,然后根据某些标准逐渐添加相邻像素。当满足某些条件时,区域增长将终止。该区域的增长取决于1.的初始点(点)的选择。2.生长标准。3.终止条件。区域增长从一个或几个像素开始,最终获得整个区域,然后实现目标的提取。

数字图像处理实验 灰度图像处理_二值图像与灰度图像_数字图像处理实验 灰度图像处理

仅需遵循以下三个规则,即可找到需要分割的图像:1、在图像中选择一个点作为点(选择点需要对特定条件进行特定分析)。2、在点执行8邻域扩展或4邻域扩展。准则是:如果所考虑像素和像素的灰度值之间的差的绝对值小于某个阈值T,则该像素被包括在像素中。区。3、当没有更多像素符合加入该区域的条件时,该区域就会停止增长。

算法实现

下面是代码的想法

  1. function [ output_args ] = area_growing_alg( input_args, thredshold_input)
  2. %UNTITLED3 此处显示有关此函数的摘要
  3. % input_args raw image as gray format
  4. % thredshold_input input thredshold
  5. % output_args convert image as gray format
  6. I=rgb2gray(input_args);
  7. figure,imshow(I),title('原始图像');
  8. I=double(I);
  9. % show raw png to get y,x
  10. [height,width]=size(I);
  11. [y_double,x_double]=getpts; %获得区域生长起始点
  12. x=round(x_double); %横坐标取整
  13. y=round(y_double); %纵坐标取整
  14. seed=I(x,y); %将生长起始点灰度值存入seed
  15. % show raw png to get y,x
  16. Tmp = zeros([height,width]);
  17. Tmp(x,y) = 1;
  18. sum = seed;
  19. seed_save=1;
  20. seed_count = 1;
  21. thredshold = thredshold_input;
  22. close all;
  23. while seed_count>0
  24. current_seed_gray_level = 0;
  25. seed_count = 0;
  26. for i=1:height
  27. for j=1:width
  28. if Tmp(i,j) == 1
  29. if (i-1)>0 && (i+1)<(height+1) ...
  30. && (j-1)>0 && (j+1)<(width+1)%判断该点不在边缘
  31. for m=-1:1
  32. for n=-1:1
  33. if Tmp(i+m,j+n)==0 && ...%首先该点周围的点应该没有被纳入生成的内容中
  34. abs(I(i+m,j+n)-seed) <= thredshold ... %其次,该点的灰度值需要小于我们设置的阈值
  35. Tmp(i+m,j+n) = 1; % 成功判定,将内容输出到输出矩阵中
  36. seed_count= seed_count+1;%数量加一
  37. current_seed_gray_level = current_seed_gray_level + I(i+m,j+n); %累加灰度,最后求均值
  38. end
  39. end
  40. end
  41. end
  42. end
  43. end
  44. end
  45. end
  46. seed_save = seed_save + seed_count;%获取所有的个数
  47. sum = sum +current_seed_gray_level;
  48. seed = sum/seed_save;%并计算灰度
  49. output_args = Tmp;
  50. end

数字图像处理实验 灰度图像处理_二值图像与灰度图像_数字图像处理实验 灰度图像处理

实验结果

测试代码如下

  1. test_png1 = imread('easy.png');
  2. t1 = area_growing_alg(test_png1,100);
  3. test_png2 = imread('选区_082.png');
  4. t2 = area_growing_alg(test_png2,100);
  5. figure;% 开一个新的图像区域
  6. subplot(2, 2, 1); imshow(test_png1); title('raw image');
  7. subplot(2, 2, 2); imshow(t1); title('sub image');
  8. subplot(2, 2, 3); imshow(test_png2); title('raw image');
  9. subplot(2, 2, 4); imshow(t2); title('sub image');
  10. grid on

结果如下:

二值图像与灰度图像_数字图像处理实验 灰度图像处理_数字图像处理实验 灰度图像处理

可以看出我们的分割算法仍然可行,但是对于绝对闭环图形,例如第二行中的图像,我选择的生长点是外部白色部分。没有这个时间,增长算法将无法促进内部白色区域。向上。因为黑色封锁杀死了白色区域的生长方向。这种现象可以在图片的第四行和第三行中清楚显示(为第3行和第4行选择相同的黑色像素

untitled.jpg-17.6kB

untitled4.jpg-26.2kB

untitled2.jpg-26.6kB

用于彩色或非二进制图像。相同控制点的选择是相同的,并且阈值的选择特别重要。您可以在同一选择点下看到上一个十字的图片的阈值75与阈值125之间的差异:

但是无论结果如何,它都表明在处理阴影时区域增长效果不佳

untitled3.jpg-28.7kB


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-347328-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...