I = imread('football.jpg'); % 用imread读取磁盘文件/该文件软件自带
imshow(I);title('橄榄球');
J= rgb2gray(I);
imhist(J);
Ave = mean2(J);
SD = std2(double(J))
s = size(J);
all_white = 255*ones(s(1),s(2)); % 设置全部为白色灰度255
all_white_uint8 = uint8(all_white); % 将double类型矩阵转化为uint8类型矩阵
K = imsubtract(all_white_uint8,J); % 图像相减得反白图像K
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)); % 设置全部为白色灰度255
all_white_uint8 = uint8(all_white); % uint8类型矩阵
K = imsubtract(all_white_uint8,J); % 图像相减得反白图像K
subplot(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
% 对图像J加均值为0,方差为0.01的高斯白噪音形成有噪声的图像J1
J1 = imnoise(J,'gaussian',0,0.01); %
M = corr2(J,J1);
disp(M);
输出结果:
>> test
0.8245
P=impixel(I); % 展示图像,点击选择坐标,点击enter,返回一个三维数组
disp(P);
>> test
252 250 253
24 34 43
127 77 80
123 53 55
126 65 64
P2 = mean2(I); % 求像素的平均值
disp(P2)
输出结果:
>> test
77.5170
imshow(I);
title('橄榄球')
ds = impixelinfo; % 展示图像信息(必须先展示图像)
disp(ds);
图像显示:
>> test
Panel (pixelinfo panel) - 属性:
Title: ''
BackgroundColor: [0.9400 0.9400 0.9400]
Position: [1 1 263.2000 20]
Units: 'pixels'
显示 所有属性
st = std2(I); % 像素的标准偏移
disp(st)
输出结果:
>> test
44.2094
为了方便理解,这里我们输出一下大小
% I2 = imresize(I,2); % 放大二倍
I2 = imresize(I,0.2); % 缩小二倍
imshow(I2);
title('我缩小了'); %
disp(size(I));
disp(size(I2)); % 已经改变了
输出结果:
>> test
256 320 3
52 64 3
dr = imrotate(I,45); % 参数(图像,角度)
imshow(dr);
title('旋转图像');
% 参数:(图像,[左上角横坐标,左上角纵坐标,水平大小,竖直大小])
dc = imcrop(I,[6,6,100,100]);
imshow(dc);
title('裁剪了');