图像运算的MATLAB实现

  • 格式:pdf
  • 大小:136.79 KB
  • 文档页数:21

下载文档原格式

  / 21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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)