当前位置:首页 > 代码 > 正文

matlab写的图象灰度切分源代码(matlab灰度图像分段线性变换)[20240506更新]

admin 发布:2024-05-06 15:40 151


今天给各位分享matlab写的图象灰度切分源代码的知识,其中也会对matlab灰度图像分段线性变换进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

matlab图像分割程序

clear I=imread('bai.jpg'); %读入图像

q=imadjust(I,[.2 .3 0;.6 .7 1],[]); %增强图像的对比度

j=rgb2gray(q); %彩色图像变灰度图像

j1=im2bw(q,230/255);%二值化

se90=strel('line',3,90); %构造元素

se0=strel('line',3,0); %同上

BW2=imdilate(j1,[se90 se0]); % 用构造的元素膨胀

BW3=bwareaopen(BW2,100);%开操作

BW3=~BW3;%取反

BW4=bwareaopen(BW3,20);%开

BW5=bwperim(BW4);%计算BW4周长

[imx,imy]=size(BW5);计算长宽

L=bwlabel(BW5,8);%用不同的数字根据是否连通标记图像,

a=max(max(L));%得到L图像中标记结果的最大值

BW6=bwfill(BW5,'hole');%填充背景

I2=I;

for i=1:3; I2(:,:,i)=I2(:,:,i).*uint8(BW6);

end imshow(I2); 有大神能逐条解释一下语句吗,本人是菜鸟啊,跪求!!

求MATLAB图像分割源程序 最好简单点带说明的

区域生长法:

A0=imread('1.jpg');%读入图像

seed=[100,220];%选择起始位置

thresh=15;%相似性选择阈值

A=rgb2gray(A0);

%灰度化

A=imadjust(A,[min(min(double(A)))/255,max(max(double(A)))/255],[]);

A=double(A); %将图像灰度化

B=A;

%将A赋予B

[r,c]=size(B);

%图像尺寸 r为行数,c为列数

n=r*c;

%计算图像所包含点的个数

pixel_seed=A(seed(1),seed(2));

%原图起始点灰度值

q=[seed(1) seed(2)];

%q用来装载起始位置

top=1;

%循环判断flag

M=zeros(r,c);

%建立一个与原图形同等大小的矩阵

M(seed(1),seed(2))=1;

%将起始点赋为1,其余为0

count=1;

%计数器

while top~=0

%循环结束条件

r1=q(1,1);

%起始点行位置

c1=q(1,2);

%起始点列位置

p=A(r1,c1);

%起始点灰度值

dge=0;

for i=-1:1

%周围点的循环判断

for j=-1:1

if r1+i=r r1+i0 c1+j=c c1+j0

%保证在点周围范围之内

if abs(A(r1+i,c1+j)-p)=thresh M(r1+i,c1+j)~=1

%判定条件?

top=top+1;

%满足判定条件top加1,top为多少,则q的行数有多少行

q(top,:)=[r1+i c1+j];

%将满足判定条件的周围点的位置赋予q,q记载了满足判定的每一外点

M(r1+i,c1+j)=1;

%满足判定条件将M中相对应的点赋为1

count=count+1;

%统计满足判定条件的点个数,其实与top此时的值一样

B(r1+i,c1+j)=1;

%满足判定条件将B中相对应的点赋为1

end

if M(r1+i,c1+j)==0;

%如果M中相对应点的值为0将dge赋为1,也是说这几个点不满足条件

dge=1;

%将dge赋为1

end

else

dge=1;

%点在图像外将dge赋为1

end

end

end

%此时对周围几点判断完毕,在点在图像外或不满足判定条件则将dge赋为1,满足条件dge为0

if dge~=1

%最后判断的周围点(i=1,j=1)是否满足条件,如dge=0,满足。dge=1,不满足。

B(r1,c1)=A(seed(1),seed(2));

%将原图像起始位置灰度值赋予B

end

if count=n

%如果满足判定条件的点个数大于等于n

top=1;

end

q=q(2:top,:);

top=top-1;

end

subplot(1,2,1),imshow(A,[]);

subplot(1,2,2),imshow(B,[]);

求用matlab绘制灰度图像的三维立体图的源代码?

p=imread('000.jpg'); % 调入全彩图

g=rgb2gray(p); % 转为灰阶图

gg=double(g); % 转为数值矩阵

gg=1-gg/255; % 将彩色值转为 0-1 的渐变值

[x,y]=size(gg); % 取原图大小

[X,Y]=meshgrid(1:y,1:x); % 以原图大小构建网格

mesh(X,Y,gg); % 网格上画出图像

colormap gray % 设为灰阶图像

彩色图像转变为灰度图像的matlab的程序代码是什么?

MidGrayPic = zeros(rows , cols);%用得到的参数创建一个全零的矩阵,这个矩阵用来存储用下面的方法产生的灰度图像  

MidGrayPic = uint8(MidGrayPic);%将创建的全零矩阵转化为uint8格式,因为用上面的语句创建之后图像是double型的

RGB=imread('img.bmp','bmp'); %读入彩色图片figure(1),imshow(RGB),title('彩色图');         %显示彩色图片I=rgb2gray(RGB);  %彩色转化成灰度图figure(2),imshow(I),title('灰度图');     %显示灰度图

不能恢复成彩色图像了,只能根据要求转变成伪彩色图像,你把前期的程序给我,我帮你做。还有把要求说详细点。

matlab运行代码进行图像分割

把你的代码保存为一个m文件,也就是后缀为*.m的文件。

然后再MATLAB选择File-》New-》M-File打开,找到你的文件打开就行

出现下面这个界面,点击其中绿色三角形即可运行

至于注释,你的代码中已经很到位了,就是前面几行错开了。而且在代码中注释,要使用%号

clear all

I=imread('tudiao.jpg');    %(读入图像)

tmin=min(I(:));  % (计算图像的灰度最小值和最大值)

tmax=max(I(:));

th=(tmin+tmax)/2;  % (设定初始阈值)

ok=true;      % (定义开关变量,用于控制循环次数)

while ok     %(迭代法计算量)

请问在MATLAB下如何实现对灰度图进行位平面分解,分成8个平面图,要代码,急!谢谢!

% 文件名:bitPlane.m

% 编 写:向德生 7/31/2010

% 功 能:MATLAB实现256色灰度图像的8位平面分解

clc;

clear all;

A = imread('car4.jpg');

% 显示原始图像

subplot(3,3,1);

imshow(A);title('原始图像');

% 显示8个位平面图像

for i=8:-1:1

A_bitplane = bitshift(bitget(A,i),i-1);

subplot(3, 3, 9-i+1);

imshow(A_bitplane);

title(['位平面 ' num2str(i)]);

end

matlab写的图象灰度切分源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于matlab灰度图像分段线性变换、matlab写的图象灰度切分源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://www.ahzz.com.cn/post/1200.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载