图像的灰度直方图实验.docVIP

  • 8
  • 0
  • 约2.19千字
  • 约 4页
  • 2017-08-21 发布于云南
  • 举报
图像的灰度直方图实验实验报告 1、实验目的: 熟悉MATLAB软件界面和初步使用图像处理工具箱。 掌握图像格式转换和图像矩阵显示方法。 掌握图像灰度直方图的显示和灰度调整方法。 实验内容: 例1 clear ; %清除内存原有一切变量 RGB=imread(gyy1.jpg); % 把RGB图读入矩阵 I=rgb2gray(RGB); %把RGB图变为灰度图 [A,map]=gray2ind(I,128); %把灰度图变索引图 BW=dither(I); %把灰度图变为二值图 subplot(2,2,1),imshow(RGB);title(yuantu); %显示原图 subplot(2,2,2),imshow(A,map),title(xmap); %显示索引图 subplot(2,2,3),imshow(I),title(graytu); %显示灰度图 subplot(2,2,4),imshow(BW),title(BWtu); %显示二值图 图1 例2:RGB=imread(gyy1.jpg); [X1,map]=rgb2ind(RGB,64); X2=rgb2ind(RGB,map); subplot(2,2,1),imshow(RGB);title(yuantu); subplot(2,2,2),imshow(X1,map);title(x1map); subplot(2,2,3),imshow(X2,map);title(x2map); 图2 例3: clear ; %清除内存原有一切变量 RGB=imread(a.jpg); % 把RGB图读入矩阵 I=rgb2gray(RGB); %把RGB图变为灰度图 imhist(I); subplot(2,2,1), imhist(I),title(实验1 直方图); 图3 例4: clear ; %清除内存原有一切变量 RGB=imread(a.jpg); % 把RGB图读入矩阵 I=rgb2gray(RGB); %把RGB图变为灰度图 subplot(2,2,1),imshow(I); title(灰度图); subplot(2,2,2),imhist(I); title(灰度图像的直方图); J=histeq(I); subplot(2,2,3),imshow(J); subplot(2,2,4), imhist(J); title(实验2 -直方图均衡化); 图4 例5: subplot(2,2,1),imshow(I); J=imadjust(I,[0.3,0.7],[0,1],1); title( 实验3 用 g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 ); subplot(2,2,2),imshow(J); subplot(2,2,3), imshow(I); J=imadjust(I,[0.5,0.8],[0,1],1); subplot(2,2,4), imshow(J); 思考题 Matlab和 C 语言有什么区别? MATLAB是用于特定的方面的,比如说矩阵运算方面、DSP就很有优势,而C语言不同,很多软件的底层都是C编写的 matlab提供的是一种基于解释的语言,虽然也是一种高级语言,但是还是很简单的,它的目标在于用户方便,开发简单。而实际上这些方便也是有代价的,编译器承受了这些代价,程序执行效率方面也有损失。另一方面matlab这么做也是基于其专用于科学计算的目的来考虑的,无法应用于通用的程序设计。c语言这么做保持了其编译的速度,便于大型程序设计,执行效率也很高,如os等百万行以上的代码。同时c语言来做很多计算以外的应用环境,如逻辑判断,I/o操作等嵌入式应用,如matlab编译器。。。 C语言是面向对象的基础语言。更多的用于底层函数开发,软件开发,单片机控制等,matlab能做的C语言肯定能做,但是一般要麻烦的多,而C语言能做的matlab不一定能做。 形式上最容易发现的区别是,matlab是一句一句编译的,而c语言是对一个完整的代码段进行编译的,并且c中有头文件(#include(...)),而matlab中没有,对于数值运算matlab是很简便强大的,c就有点繁琐,对于算法要求c

文档评论(0)

1亿VIP精品文档

相关文档