赞
踩
调用Matlab函数指令实现以下内容:
显示(x1,y1)与(x2,y2)两点间的图像像素变化情况;
话不多数,上代码!程序代码如下:
- % 读取图像
- I=imread('onion.png');
- Ig=rgb2gray(I);
- figure(1)
- subplot(1,2,1);imshow(I),title('RGB')
- subplot(1,2,2);imshow(Ig),title('Gray')
- hsv=rgb2hsv(I);
- wrgb=ind2rgb(gray2ind(Ig,255),jet(255));
- figure(2)
- subplot(1,2,1),imshow(wrgb),title('F-RGB')
- subplot(1,2,2),imshow(hsv),title('HSV')
- figure(3)
- im=imcrop(I,[40,80,70,70]);
- image(im),axis on,colormap(gray(256)),title('截取的一小块图像');
- % 两个像素点8-邻域的计算
- row1=4;
- col1=5;
- im(row1,col1,:)=255;
- im(row1-1,col1-1:col1+1,:)=155;
- im(row1,col1-1,:)=155;
- im(row1,col1+1,:)=155;
- im(row1+1,col1-1:col1+1,:)=155;
- row2=16;
- col2=18;
- im(row2,col2,:)=255;
- im(row2-1,col2-1:col2+1,:)=155;
- im(row2,col2-1,:)=155;
- im(row2,col2+1,:)=155;
- im(row2+1,col2-1:col2+1,:)=155;
- figure(4)
- image(im),axis on,grid on,colormap(gray(256)),title('两点的8-领域');
- % 两个像素点之间RGB三个像素值的变化
- a=80+row1;
- b=40+col1;
- a1=80+row2;
- b1=40+col2;
- figure(5),
- improfile(I,[b,b1],[a,a1]),
- ylabel('Pixel value'),
- title('(x1,y1)到(x2,y2)的像素值变化情况')
- % 两个像素点之间的距离
- H1=I(a,b);
- H2=hsv(a,b);
- disp('RGB图像(x1,y1)处的值为:')
- disp(H1)
- disp('HSV图像(x1,y1)处的值为:')
- disp(H2)
- figure(6)
- subplot(1,2,1),imshow(H1),title('RGB上的(x1,y1)')
- subplot(1,2,2),imshow(H2),title('HSV上的(x1,y1)')
- EuD=sqrt((b-b1)^2+(a-a1)^2);
- disp('两点间的欧几里得距离为:')
- disp(EuD)
- MaD=abs(b-b1)+abs(a-a1);
- disp('两点间的出租车距离为:')
- disp(MaD)
- % 互换两个像素点的8-邻域像素值
- I2=I;
- p1=I2(a,b,:);
- p2=I2(a-1,b-1:b+1,:);
- p3=I2(a,b-1,:);
- p4=I2(a,b+1,:);
- p5=I2(a+1,b-1:b+1,:);
- I2(a,b,:)=I2(a1,b1,:);
- I2(a-1,b-1:b+1,:)=I2(a1-1,b1-1:b1+1,:);
- I2(a,b-1,:)=I2(a1,b1-1,:);
- I2(a,b+1,:)=I2(a1,b1+1,:);
- I2(a+1,b-1:b+1,:)=I2(a1+1,b1-1:b1+1,:);
- I2(a1,b1,:)=p1;
- I2(a1-1,b1-1:b1+1,:)=p2;
- I2(a1,b1-1,:)=p3;
- I2(a1,b1+1,:)=p4;
- I2(a1+1,b1-1:b1+1,:)=p5;
- figure(7)
- subplot(1,2,1),imshow(I),line([b,b1],[a,a1]),title('(x1,y1)与(x2,y2)相连');
- subplot(1,2,2),imshow(I2),title('交换(x1,y1)和(x2,y2)8-领域像素值');
- % 保存图像
- imwrite(I2,'onion.jpg')
- imwrite(I2,'onion.bmp')
- imwrite(I2,'onion.jpeg')
-
-
程序代码原理:
程序运行结果如下:
(这里只放了内容3、4、5、6的,其他内容请看专栏中的前一篇文章)
3、两个像素点的值
4、两个像素点之间的距离
5、交换两个像素点的8-邻域的像素值:
6、保存图像:
感谢观看,喜欢博主的分享朋友,别忘了一键三连哦!
原创内容,不经允许禁止转载
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。