数字图像处理的相关基本操作
操作
1. 导入图像
I = imread('football.jpg'); % 用imread读取磁盘文件/该文件软件自带
2. 显示图像并设置标题
imshow(I);title('橄榄球');
结果:
3. 将彩色图像转为灰度图像
J= rgb2gray(I);
4. 计算并显示灰度图像J的灰度直方图
imhist(J);
5. 求图像J的均值
Ave = mean2(J);
6. 求图像J的标准差
SD = std2(double(J))
7. 求大小
s = size(J);
8. 获得反白图像K
all_white = 255*ones(s(1),s(2)); % 设置全部为白色灰度255all_white_uint8 = uint8(all_white); % 将double类型矩阵转化为uint8类型矩阵K = imsubtract(all_white_uint8,J); % 图像相减得反白图像K
9. 将反白后的图像存入文件
imwrite(K,'aa2.jpg'); % 将反白图像存入文件 /文件名为'aa2.jpg'
这里我们写一个方法,可以计算所有的值,并且可以显示所有的图像
% 用来计算,返回(均值Ave,标准差SD,大小s,反白图像K),J为一个灰度图像function [Ave,SD,s,K] = xx(J)subplot(2,2,2);imshow(J);title('有噪图像J1');subplot(2,2,3);imhist(J);title('灰度直方图');Ave = mean2(J); % 图像均值fprintf('均值为%c\n',Ave);SD = std2(double(J)); % 图像均值fprintf('均值为%c\n',SD);s = size(J);fprintf('图像大小为');disp(s);all_white = 255*ones(s(1),s(2)); % 设置全部为白色灰度255all_white_uint8 = uint8(all_white); % uint8类型矩阵K = imsubtract(all_white_uint8,J); % 图像相减得反白图像Ksubplot(2,2,4);imshow(K);title('反白图像K');end
主函数:
I = imread('football.jpg'); % 用imread读取磁盘文件subplot(2,2,1);imshow(I);title('橄榄球');J= rgb2gray(I);[Ave,SD,s,K]=xx(J);imwrite(K,'aa2.jpg'); % 将反白图像存入文件
显示结果:
输出结果:
均值为7.445164e+01均值为3.712365e+01图像大小为 256 320
一些函数的基本使用
1. 读入图像的二维相关系数(corr2)
% 对图像J加均值为0,方差为0.01的高斯白噪音形成有噪声的图像J1J1 = imnoise(J,'gaussian',0,0.01); % M = corr2(J,J1);disp(M);
输出结果:
>> test0.8245
2. 像素的颜色值(impixel)
P=impixel(I); % 展示图像,点击选择坐标,点击enter,返回一个三维数组disp(P);
显示图像:
输出结果:
>> test252 250 25324 34 43127 77 80123 53 55126 65 64
3. 像素的平均值(mean2)
P2 = mean2(I); % 求像素的平均值disp(P2)
输出结果:
>> test77.5170
4. 显示像素的信息(impixelinfo)
imshow(I);title('橄榄球')ds = impixelinfo; % 展示图像信息(必须先展示图像)disp(ds);
图像显示:
输出结果:
>> testPanel (pixelinfo panel) - 属性:Title: ''BackgroundColor: [0.9400 0.9400 0.9400]Position: [1 1 263.2000 20]Units: 'pixels'显示 所有属性
5. 像素的标准偏移(std2)
st = std2(I); % 像素的标准偏移disp(st)
输出结果:
>> test44.2094
6. 改变图像的尺寸(imresize)
为了方便理解,这里我们输出一下大小
% I2 = imresize(I,2); % 放大二倍I2 = imresize(I,0.2); % 缩小二倍imshow(I2);title('我缩小了'); % disp(size(I));disp(size(I2)); % 已经改变了
图像显示:
输出结果:
>> test256 320352 643
7. 旋转图像(imrotate)
dr = imrotate(I,45); % 参数(图像,角度)imshow(dr);title('旋转图像');
图像显示:
8. 对图像进行裁剪(imcrop)
% 参数:(图像,[左上角横坐标,左上角纵坐标,水平大小,竖直大小])dc = imcrop(I,[6,6,100,100]); imshow(dc);title('裁剪了');
显示图像:
创作不易,请大家多多关注!!!(up:惊呼~ 尖叫~)
如有错误,请告知up,将于下一篇进行更正
如果觉得《数字图像处理 matlab 基本操作 实验一的部分内容》对你有帮助,请点赞、收藏,并留下你的观点哦!