图像运算的MATLAB实现
- 格式:pdf
- 大小:136.79 KB
- 文档页数:21
rice=imread(‘rice.png’); % 读入图像
I=double(rice); % 数据类型转换
J=I*0.43+60; % 像素点算术运算
rice2=uint8(J) % 数据类型转换subplot(1,2,1),imshow(rice); % 原图绘制subplot(1,2,2),imshow(rice2); % 计算后图像绘制
X = uint8([ 255 10 75; 44 225 100]); Y = uint8([ 50 20 50; 50 50 50 ]);
Z = imdivide(X,Y)
I = imread('rice.png'); % 读入图像background = imopen(I,strel('disk',15)); % 图像开运算Ip = imdivide(I,background); % 图像除法运算imshow(Ip,[]) % 显示运算后的图像
I = imread('rice.png'); % 读入图像
J = imdivide(I,2); % 图像除以一个常数subplot(1,2,1), imshow(I) % 显示原始图像subplot(1,2,2), imshow(J) % 显示运算后的图像
I = imread('cameraman.tif'); % 读入图像J = imlincomb(2,I); % 灰度值放大imshow(J) % 显示运算后的图像
I = imread('cameraman.tif'); % 读入图像
J = uint8(filter2(fspecial('gaussian'), I)); % 图像滤波
K = imlincomb(1,I,-1,J,128); % K(r,c) = I(r,c) - J(r,c) + 128 % 图像相减后加上一个常数figure, imshow(K) % 显示运算后的图像
J = imread('cameraman.tif'); % 读入图像
K = imlincomb(1,I,1,J,'uint16'); % 图像相加并指定数据类型figure, imshow(K,[]) % 显示运算后的图像
J2 = imresize(J, 10, 'nearest'); % 图像放大,最近邻法
J3 = imresize(J, 10, 'bilinear'); % 图像放大,双线性插值法 J4= imresize(J, 10, 'bicubic'); % 图像放大,双立方插值法figure, imshow(I); % 显示原始图像
figure, imshow(J2); % 显示放大图像,最近邻法figure, imshow(J3); % 显示放大图像,双线性插值法figure, imshow(J4); % 显示放大图像,双立方插值法
tic % 求图像运算时间J2 = imresize(J, 10, 'nearest');
toc
tic % 求图像运算时间J3 = imresize(J, 10, 'bilinear');
toc
tic % 求图像运算时间J4= imresize(J, 10, 'bicubic');
toc
[X, map] = imread('trees.tif'); [Y, newmap] = imresize(X, map, 0.5); imshow(X, newmap)
figure,imshow(Y, newmap)
RGB = imread('peppers.png'); RGB2 = imresize(RGB, [64 NaN]); imshow(RGB);
figure,imshow(RGB2);
X = uint8([ 255 0 75; 44 225 100]); Y = uint8([ 50 50 50; 50 50 50 ]); Z = imadd(X,Y)
Z =
255 50 125
94 255 150
I = fitsread('solarspectra.fts'); % 读入光谱图
I = mat2gray(I); % 数据显示为灰度图像J = imrotate(I,-1,'bilinear','crop'); % 图像旋转figure, imshow(I) % 显示原始图像figure, imshow(J) % 显示旋转后的图像
I2 = imcrop(I,[60 40 100 90]); % 剪切图像imshow(I) % 显示原始图像figure, imshow(I2) % 显示剪切后的图像
J = imread('cameraman.tif'); % 读入图像
K = imadd(I,J,'uint16'); % 两图像矩阵相加imshow(K,[]) % 显示结果图像
J = imadd(I,50); % 图像矩阵加上一个常数subplot(1,2,1), imshow(I) % 原始图像subplot(1,2,2), imshow(J) % 加法运算结果图像
X = uint8([ 255 10 75; 44 225 100]); Y = uint8([ 50 50 50; 50 50 50 ]);
Z = imsubtract(X,Y)
Z =
205 0 25
0 175 50
background = imopen(I,strel('disk',15)); J = imsubtract(I,background); imshow(Ip,[])
subplot(1,2,1), imshow(I)
subplot(1,2,2), imshow(J)