⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用matlab编程实现彩色图像的局部分割.txt

📁 这是彩色图像的局部分割程序
💻 TXT
字号:
这段程序是我在学matlab时做的作业,当时为了求异和速度,采用矩阵作为算法的核心,不过我调试后
发现反而不够普通的采用循环判断结构的快,只是在代码上简洁点而已


1)    function A=colordrawout(pix,n)         %彩色图片轮廓线提取函数
2)           figure;A=imread(pix);                    %读取指定彩色图片                
3)    [k,j]=size(A(:,:,1));               % k,j分别为2D矩阵的行数和列数
4)    e=['红色强度值矩阵';'绿色强度值矩阵';'蓝色强度值矩阵'];
5)    nn=n*ones(k,j);                 %阈值矩阵
6)    for i=1:3                         %依次从三个矩阵中提取轮廓线
7)    H=double(A(:,:,i));                 %将选择的矩阵变为双精度矩阵
8)    F=40*sin(pi/2*1/255*H);            %进行非线性变换
9)    you=F(:,2:end); you(:,end+1)=0;       %右矩阵
10)    xia=F(2:end,:);xia(end+1,:)=0;        %左矩阵
11)    yx=F(2:end,2:end);yx(end+1,end+1)=0;  %右下矩阵
12)    %判断图片中任一点以其周围的点的差与给出的阈值的关系
13)    yy=abs(F-you)-nn;yy(find(yy>0))=255;yy(find(yy<=0))=0;
14)    xx=abs(F-xia)-nn;xx(find(xx>0))=255;yy(find(xx<=0))=0;
15)    yx2=abs(F-yx)-nn;yx2(find(yx2>0))=255;yx2(find(yx2<=0))=0;
16)    T=xx+yy+yx2;%满足其中一个就为边界
17)    subplot(3,3,i+6);  %将窗口分割为两行两列,下图显示于第i+1位置
18)    %显示轮廓线 %图释 %保持图片显示比例
19)    imshow(T); title(e(i,:)); axis image;
20)    end;
21)    subplot(3,3,2);                    %下图显示于第1位置
22)    image(A);                        %显示原彩色图片
23)    title('彩色图原图'); axis image; %图释%保持图片显示比例
24)    r=A;g=A;b=A;r(:,:,2)=0;r(:,:,3)=0;g(:,:,1)=0;g(:,:,3)=0;b(:,:,1)=0;b(:,:,2)=0;
25)    subplot(3,3,4);image(r);axis image; subplot(3,3,5);
26)    image(g);axis image;subplot(3,3,6); image(b);axis image;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -