永发信息网

matlab程序输入后没有显示错误信息

答案:2  悬赏:60  手机版
解决时间 2021-02-14 02:56
  • 提问者网友:饥饿走向夜
  • 2021-02-13 19:08
I=imread('F:\ 20140422-1\42.bmp');
%RGB图像转为灰度图像
I1=0.3*I(:,:,1)+0.59*I(:,:,2)+0.11*I(:,:,3);
%维纳滤波
J5=wiener2(I1,[5 5]);
%归一化处理
A=J5;
M=mean2(A);
V=std2(A)^2;
[m,n]=size(A);
A1=double(A);
A2=ones(size(A1));
for i=1:m
for j=1:n
if A1(i,j)>M
A2(i,j)=80+sqrt(255*((A1(i,j)-M)^2)/V);
else
A2(i,j)=80-sqrt(255*((A1(i,j)-M)^2)/V);
end
end
end
A2=uint8(A2);
%直方图均衡
B=histeq(A2);
%采用反锐化掩膜法进行锐化处理
H=fspecial('gaussian');
I2=imfilter(B,H);
I3=B-I2;
I4=B+9*I3;
%阈值分割
C=I4;
C1=C;
C2=ones(size(C1));[m,n]=size(C2);
for i=41:(m-40)
for j=41:(n-40)
im=C1((i-40):(i+40),(j-40):(j+40));%81*81块
level=graythresh(im);%otsu法求阈值
level2=256*level;
if C1(i,j) C2(i,j)=0;
end
end
end
%将小于25000像素的单元去除
C3=~C2;
result=bwareaopen(C3,25000);
%中值滤波
Z=medfilt2(result,[10 10]);
%再次去噪声斑块
Z1=bwareaopen(Z,500);
Z2=~Z1;Z3=bwareaopen(Z2,500);Z4=~Z3;
%细化
Z5=bwmorph(Z4,'thin',Inf);
%细化后去除毛刺
Z6=bwmorph(Z5,'spur',30);
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-02-13 20:40
我改下就有结果了:
%I=imread('F:\ 20140422-1\42.bmp');
I=imread('齿轮.jpg');
figure,imshow(I),title('原图')
%RGB图像转为灰度图像
I1=0.3*I(:,:,1)+0.59*I(:,:,2)+0.11*I(:,:,3);
figure,imshow(I1),title('灰度图')
%维纳滤波
J5=wiener2(I1,[5 5]);
figure,imshow(J5),title('维纳滤波灰度图')
%归一化处理
A=J5;
M=mean2(A);
V=std2(A)^2;
[m,n]=size(A);
A1=double(A);
A2=ones(size(A1));
for i=1:m
for j=1:n
if A1(i,j)>M
A2(i,j)=80+sqrt(255*((A1(i,j)-M)^2)/V);
else
A2(i,j)=80-sqrt(255*((A1(i,j)-M)^2)/V);
end
end
end
A2=uint8(A2);
figure,imshow(A2),title('归一处理灰度图')
%直方图均衡
B=histeq(A2);
figure,imshow(B),title('直方图均衡灰度图')
%采用反锐化掩膜法进行锐化处理
H=fspecial('gaussian');
I2=imfilter(B,H);
I3=B-I2;
I4=B+9*I3;
figure,imshow(I4),title('锐化处理灰度图')
%阈值分割
C=I4;
C1=C;
C2=ones(size(C1));
[m,n]=size(C2);
for i=41:(m-40)
for j=41:(n-40)
im=C1((i-40):(i+40),(j-40):(j+40));%81*81块
level=graythresh(im);%otsu法求阈值
level2=256*level;
if C1(i,j) C2(i,j)=0;
end
end
end
figure,imshow(C2),title('阈值分割二值图')
%将小于25000像素的单元去除
C3=~C2;
result=bwareaopen(C3,25000);
figure,imshow(result),title('去除小于25000像素二值图')
%中值滤波
Z=medfilt2(result,[10 10]);
figure,imshow(Z),title('中值滤波二值图')
%再次去噪声斑块
Z1=bwareaopen(Z,500);
Z2=~Z1;
Z3=bwareaopen(Z2,500);
Z4=~Z3;
figure,imshow(Z4),title('再次去噪声斑块图')
%细化
Z5=bwmorph(Z4,'thin',Inf);
figure,imshow(Z5),title('细化图')
%细化后去除毛刺
Z6=bwmorph(Z5,'spur',30);
figure,imshow(Z6),title('细化后去除毛刺图')
全部回答
  • 1楼网友:街头电车
  • 2021-02-13 22:07
你的程序只是计算,没有给图,你可以用imshow(x,[])的方式绘制你的计算结果
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯