Matlab学习笔记(五)--图像处理

11、图像算术运算

IPT支持的图像算术运算

函数

描述

Imadd

两幅图像相加或把常数加到图像

Imsubtract

两幅图像相减或从图像减去常数

Immultiply

两幅图像相乘,其中相乘是在相应的像素对间进行,或图像乘以一个常数

Imdivide

两幅图像相除,其中相除是在相应的像素方向对间进行的,或图像除以一个常数

Imabsdiff

计算两幅图像间的绝对差

Imcomplement

对图像求补

Imlincomb

计算两幅或多幅图像的线性组合

12、制作负片图像

【例一】

f = imread('F:\pictures\Pure girl\3.jpg') ;

A = imadjust(f,[0,1],[1,0]) ;

imshow(A);

【例二】

f = imread('F:\pictures\Pure girl\3.jpg') ;

A =imcomplement(f) ;

imshow(A);

13、绘制直方图

函数imhist可以用来绘制直方图,但是仅对灰度图像有用.

常用使用格式:

p = imhist(f);%f为图像矩阵

p = imhist(f,b);

参数b取2时则直方图中亮度范围分成两部分,0~127和128~255,直方图中有两个值,h(1)为图像在区间[0 127]内像素总数,h(2)为图像在区间[128 255]内的像素总数.b=3则同理将区间[0 255]等分成三部分,分别显示每个区间中的像素总数。b的缺省值为256.

例:

代码:

A= imread

('F:\pictures\perfact\29.jpg');

subplot(2,2,1);

imshow(A);

subplot(2,2,2);

imhist(A(:,:,1));

subplot(2,2,3);

imhist(A(:,:,1),128);

subplot(2,2,4);

imhist(A(:,:,1),2);

14、绘制条形图

函数bar用来绘制条形图,使用格式如下:

bar(horz,v,width)

其中v是一个行向量,它包含将绘制的点,horz是一个与v有着相同的维数的向量,它包含水平标度值的增量,width是一个在[0 1]上取值的数.若省略参数horz,则水平轴会从0到length(v)等分若干单位。当width取1,竖条会较明显,取0则竖条是简单的垂直线,width的缺省值为0.8.

例:

代码:

A = imread('F:\pictures\perfact\29.jpg');

B = A(:,:,1);

h = imhist(B);

h1 = h(1:5:256);

horz = 1:5:256 ;

subplot(2,2,1);

bar(horz,h1);

subplot(2,2,2);

bar(h1);

subplot(2,2,3);

bar(h1,0);

subplot(2,2,4);

bar(h1,1);

15、绘制杆图

使用函数stem可以 绘制茎叶图,使用格式如下:

stem(horz,v,’color-linestyle-marker’,’fill’)

说明:

  1.          v是一个向量,它包含所需所绘制的点;horz的含义与条形图中相同;
  2.          参数’color-linestyle-marker’分别表示三个属性。color指定填充颜色,缺省值为black(黑色);linestyle指定线的类型缺省值为solid(实线);marker代表标记点的形状,缺省为circle(圆形).当使用’fill’时才会使标记点的颜色为指定的颜色.

例:

A = imread('F:\pictures\perfact\29.jpg');

B = A(:,:,1);

h = imhist(B);

h1 = h(1:5:256);

horz = 1:5:256 ;

subplot(1,2,1);

stem(horz,h1,'fill');

subplot(1,2,2);

K = stem(horz,h1,'fill','--');

set(get(K,'BaseLine'),'LineStyle',':');

set(K,'MarkerFaceColor','red');

set(K,'Marker','square');

axis([0 255 0 15000]);

set(gca,'xtick',[0:50:255]);

set(gca,'ytick',[0:1000:15000]);

16、绘制阶梯图、饼图及复数向量图

【例一】:绘制阶梯图

x = 1:1:20 ;

y = x;

stairs(x,y);

【例二】:绘制饼图及向量图

subplot(1,2,1);

pie([10,60,35,95]);

title('饼图');

legend('一季度','二季度','三季度','四季度');

subplot(1,2,2);

compass([7+2.9i,2-3i,-1.5-6i]);

title('相量图');

17、图像(R,G,B)分量的选取

fid = imread('F:\pictures\Pure girl\6.jpg');

subplot(2,2,1);

imshow(fid);

N = 520 ;

fid = imresize(fid,[N N]);

subplot(2,2,2);

%图像仅保留(R,G,B)红色分量

A1 = fid;

A1(:,:,2)= 0;%去掉绿色

A1(:,:,3)= 0;%去掉蓝色

imshow(A1);

subplot(2,2,3);

%图像仅保留(R,G,B)绿色分量

A2 = fid;

A2(:,:,1)= 0;%去掉红色

A2(:,:,3)= 0;

imshow(A2);

subplot(2,2,4);

%图像仅保留(R,G,B)蓝色分量

A3 = fid;

A3(:,:,1)= 0;%去掉红色

A3(:,:,2)= 0;

imshow(A3);

18、保存屏幕绘制的图形

x=-2*pi:0.1:2*pi;

y=sin(x)+cos(x).^2;

plot(x,y,'r.');

h=getframe(gcf);%获取屏幕上绘制的图形

h=frame2im(h);%将获取的图形转换成图像

imwrite(h,'tt.jpg');%保存图像

19、绘图窗口显示数学公式

h = text('units','inch', 'position',[.3 .8], ...

    'fontsize',14, 'interpreter','latex', 'string',...

    ['$$\left[ {\matrix{\cos(\phi) & -\sin(\phi) \cr'...

    '\sin(\phi) & \cos(\phi) \cr}} \right]'...

'\left[ \matrix{x \cr y} \right]$$']);

猜你喜欢

转载自blog.csdn.net/huzhizhewudi/article/details/84439238