新疆大学信息科学与工程学院
end
function flag=predicate(region) sd=std2(region); m=mean2(region);
flag=(sd>5)&(m>0)&(m<200); end 5、
图6.5 例图
图6.6 例图
图6.7 例图
1).运行如下程序实现对图6.5,实现去除图像中的噪声,请分析显示结果。 I=imread('test1.tif'); J=im2bw(I);
se = strel('diamond',2); K=imerode(J,se);
45
新疆大学信息科学与工程学院
subplot(131),imshow(I) subplot(132),imshow(J)
subplot(133), imshow(K)
2).运行如下程序,实现将图6.6转化为二值图像,并计算图中鸡块中骨头的比重,请分析显示结果。 I=imread('test2.tif'); J=im2bw(I); total1=bwarea(J); a=size(J); s1=a(1),s2=a(2); s=s1*s2 k=total1/s
46
新疆大学信息科学与工程学院
3).运行如下程序,实现去除图6.7中的矩形区域外的噪声,并填充矩形区域内部的小孔,请显示结果。 I=imread('test3.tif'); se = strel('diamond',5); J=imerode(I,se);
se = strel('diamond',10); K=imdilate(J,se); subplot(131),imshow(I) subplot(132),imshow(J)
subplot(133), imshow(K)
二、图像描述(根据课程内容,可选作其中部分内容) 查阅相应参考文献,完成
1、选择一幅彩色图像,编程计算其在RGB和HIS空间下的颜色矩,绘制颜色直方图
参考程序如下:
%颜色矩,假设原图为rgb图像
I=imread('a.jpg');
I1=rgb2hsv(I);%如果需要求解RGB空间下的颜色矩,则将此条语句去掉即可 [n,m,q]=size(I1); sum1=n*m; h=I1(:,:,1); s=I1(:,:,2); v=I1(:,:,3); y=zeros(1,9); %求一阶矩(均值) for i=1:sum1
y(1)=y(1)+h(i); y(2)=y(2)+s(i); y(3)=y(3)+v(i); end
y(1)=y(1)/sum1; y(2)=y(2)/sum1; y(3)=y(3)/sum1;
%求二阶矩(方差) for i=1:sum1
y(4)=y(4)+(h(i)-y(1))^2; y(5)=y(5)+(s(i)-y(2))^2; y(6)=y(6)+(v(i)-y(3))^2; end
47
新疆大学信息科学与工程学院
y(4)=sqrt(y(4)/sum1); y(5)=sqrt(y(5)/sum1); y(6)=sqrt(y(6)/sum1); %求三阶矩
for i=1:sum1
y(7)=y(7)+(h(i)-y(1))^3; y(8)=y(8)+(s(i)-y(2))^3; y(9)=y(9)+(v(i)-y(3))^3; end
y(7)=(y(7)/sum1)^(1/3); y(8)=(y(8)/sum1)^(1/3); y(9)=(y(9)/sum1)^(1/3); y
%绘制颜色直方图: 参考程序如下:
%读入图像
Image=imread(B); %end
[M,N,O] = size(Image); %M = 256; %N = 256;
% 计算每一幅图像的颜色直方图 [h,s,v] = rgb2hsv(Image); H = h; S = s; V = v; h = h*360;
%将hsv空间非等间隔量化: % h量化成16级; % s量化成4级; % v量化成4级; for i = 1:M for j = 1:N
if h(i,j)<=15||h(i,j)>345 H(i,j) = 0; end
if h(i,j)<=25&&h(i,j)>15 H(i,j) = 1; end
if h(i,j)<=45&&h(i,j)>25 H(i,j) = 2; end
if h(i,j)<=55&&h(i,j)>45
48