实验一所采用灰度图片
I=imread('C:\Users\qq260\Desktop\灰度图片.jpg'); %读取灰度图片,本实验一定要用黑白的灰度图片才行 [r,c]=size(I); % 能够显示该图像有多少行,多少列 I(3,5) %输出I点灰度值 I(3:5,10:15) %输出3到5行,10到15列的像素灰度值 I(3,5)=200; % 将像素点(3,5)的灰度值改为200 imshow(I) %显示灰度图片I实验一结果
注:1、语句后无分号是输出,有分号不输出。
实验二所采用彩图
I=imread('C:\Users\qq260\Desktop\环太平洋2.jpg'); % 输入彩图 H = rgb2gray(I); %将彩图变化为灰度图 figure,imshow(H) % 输出灰度图 H(9,3) % 输出m行n列处图像像素,我的学号后两位为09,生日后两位为03 neigh=H(8:10,2:4) % 输出(m,n)点像素,及其八邻域像素值 T=[H(8,3) H(10,3) H(8,2) H(9,2) H(10,2) H(8,4) H(9,4) H(10,4)]; %(m,n)点周围的八邻域像素 mean=((H(8,3)+H(10,3)+H(8,2)+H(9,2)+H(10,2)+H(8,4)+H(9,4)+H(10,4))/8) %计算八邻域均值 m=max(T) %计算八邻域中的最大值 n=min(T) %计算八邻域中的最小值 [Maxrow,Maxcell]=find(neigh==m) %Maxrow、Maxcell为最大值点的行和列 [Minrow,Mincell]=find(neigh==n) %Maxrow、Maxcell为最小值点的行和列 %因最大值点、最小值点不唯一,因此Maxrow、Maxcell、Minrow、Mincell可能有多个值 Dis=sqrt((Maxrow(1)-Minrow(1)).^2+(Maxcell(1)-Mincell(1)).^2); %因最小值不唯一,算出来有多个欧式距离,我们可以在Maxrow、Maxcell、Minrow、Mincell前面加上1,表示第一个最大值点和第一个最小值点 Dis %输出欧式距离实验二结果
注:1、find函数可以用来找矩阵中某一个点的位置,如[Maxrow,Maxcell]=find(neigh==m),意思是在矩阵neigh中找值为m的像素的位置。