1.imread()

MATLAB中图像读取函数与OpenCV一样是imread,可以打开指定路径图片,其路径表示方式与OpenCV中有些许不同如:

[plain] view
plain
 copy
  1. srcImage=imread(\’E:\MatlabWorkSpace\实验一\实验一图一.png\’);  

路径符号为单”\”,Opencv为双”\”,其函数原型为:

[plain] view
plain
 copy
  1. A=imread(filename,fmt);  


2.将打开的图像转换为灰度图rgb2gray

grayImage=rgb2gray(srcImage);

3.imwrite

保存图片,一定要注明图片格式如jpg,bmp,png等。原型如下:

[plain] view
plain
 copy
  1. imwrite(A,filename,fmt);  

保存图片时可指定图片保存路径。如

[plain] view
plain
 copy
  1. imwrite(grayImage,\’E:\MatlabWorkSpace\实验一\grayImage.jpg\’);  

4.imhist

绘制图像直方图函数,直方图绘制后可直接显示,不需要用imshow进行显示。如:

[plain] view
plain
 copy
  1. imhist(grayImage);  

5.imfinfo

读取图片信息包括Height、Width、Format、ColorType等信息,可利用此函数判断函数为彩图还是灰度图.如:

[plain] view
plain
 copy
  1. info=imfinfo(\’E:\MatlabWorkSpace\实验一\grayImage.jpg\’);  

***此处貌似必须先将要读取的图片保存下来,之后指定图像所在路径,初学没发现其他方法,欢迎指正。

6.subplot

将图片放到一个窗口,需指定三个参数,原型如下:

[plain] view
plain
 copy
  1. subplot(m n p)  

m、n、p分别代表该窗口中图像排列的行数、列数以及第几幅图片

可结合title使用

7.adapthisteq()

图像直方图均衡化

[plain] view
plain
 copy
  1. H1=adapthisteq(grayImage);  


8.imadjust()

该函数用于调节灰度图像的亮度或彩色图像的颜色矩阵。用法如下:

[plain] view
plain
 copy
  1. J=imadjust(I);  

将灰度图像I中的亮度值映射到J中的新值,使得图像中1%的数据饱和至最低和最高亮度,这可以增加输出图像J对比度值,此用法相当于imadjust(I,stretchlim(I))

[plain] view
plain
 copy
  1. J=imadjust(I,[low_in,hing_in],[low_out,high_out])  

将图像I中的亮度值映射到J中的新值即将low_in至high_in之间的值映射到low_out至high_out之间的值.low_in以下与high_in以上的值被剪切掉了,也就是说low_in以下的值映射到low_out,high_in以上的值映射到high_out。它们都可以使用空的矩阵[],默认值是[0 1]

low_in、high_in、low_out、high_out的值均在0~1之间,可由已知值除以255算出值。例如low_in为100则,该位置应为:100/255=0.392

[plain] view
plain
 copy
  1. J=imadjust(I,[low_in,hing_in],[low_out,high_out],gamma)  

其中gamma指定描述值I和J关系的曲线形状。如果gamma小于1,此映射偏重更高数值(明亮)输出,如果gamma大于1,此映射偏重更低数(灰暗)输出,如果省略此参数,默认为(线性映射).如图

示例代码:

[plain] view
plain
 copy
  1. %加载第一幅图像对其进行处理  
  2. srcImage=imread(\’E:\MatlabWorkSpace\实验一\实验一图一.png\’);  
  3.   
  4. %转化成灰度图  
  5. grayImage=rgb2gray(srcImage);  
  6. imwrite(grayImage,\’E:\MatlabWorkSpace\实验一\grayImage.jpg\’);  
  7. info=imfinfo(\’E:\MatlabWorkSpace\实验一\grayImage.jpg\’);  
  8. %[M,N]=size(grayImage);  
  9.   
  10. %在窗口中显示2*2排列图像  
  11. subplot(2,3,1);  
  12. imshow(grayImage);  
  13. title(\’原图像灰度图\’);  
  14.   
  15. %绘制灰度直方图  
  16. subplot(2,3,2);  
  17. imhist(grayImage);  
  18. title(\’灰度直方图\’);  
  19. %[M,N]=size(hist);  
  20.   
  21. %对灰度直方图均衡化处理  
  22. subplot(2,3,3);  
  23. H1=adapthisteq(grayImage);  
  24. imhist(H1);  
  25. title(\’直方图均衡化\’);  
  26.   
  27. %调整图像灰度等级  
  28. %原图像灰度集中10~120,调整到100~200  
  29. dstImage=imadjust(grayImage,[0.039,0.470],[0.392,0.784],0.6);  
  30. subplot(2,3,4);  
  31. imshow(dstImage);%显式调整后图像  
  32. title(\’灰度级调整后\’);  
  33. subplot(2,3,5);  
  34. imhist(dstImage);  
  35. title(\’灰度调整后直方图\’);  


运行结果如图所示:


版权声明:本文为匿名原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: