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’)
说明:
- v是一个向量,它包含所需所绘制的点;horz的含义与条形图中相同;
- 参数’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]$$']); |