黑白两色图
- 每个pixel:非黑0,即白1

灰度图
- 每个pixel是0~255的数字,颜色从黑到白的一个比例。

彩色图
- 由三个矩阵表示。
- 分别是:红度矩阵(从黑色到红色0~255)、绿度矩阵(从黑色到绿色0~255)、蓝度矩阵(从黑色到蓝色0~255)。
-
三个颜色值都很低(都是0)叠在一起还是黑色。三个颜色都很高(都是255)叠在一起就是白色。
读取和显示图片
- 读取:
img = imread('xxx.xx')
- 显示:
imshow(img)
close all; clc;
Img = imread('img1.png');
% save img.mat Img;
size(Img) % 246 300 3
size(Img(:,:,1)) % 246 300
figure; %RGB图
imshow(Img(:,:,:)), colorbar, colormap default;
%一层的只能是灰度图
figure; %红色通道 灰度图
imshow(Img(:,:,1)), colorbar, colormap gray;
figure; %绿色通道 灰度图
imshow(Img(:,:,2)), colorbar, colormap gray;
figure; %蓝色通道 灰度图
imshow(Img(:,:,3)), colorbar, colormap gray;
%彩色图一定是R、G、B三层,只显示一种颜色可以将另外两层都置为0。
figure; %红度图
R = Img; R(:,:,[2,3])=0;
imshow(R(:,:,:)), colorbar, colormap default;
figure; %绿度图
G = Img; G(:,:,[1,3])=0;
imshow(G(:,:,:)), colorbar, colormap default;
figure; %蓝度图
B = Img; B(:,:,[1,2])=0;
imshow(B(:,:,:)), colorbar, colormap default;



一个pixel就占一个byte(字节) , 存放类型:无符号整型
>> whos
Name Size Bytes Class
Img 431x525x3 678825 uint8
查看照片info
imageinfo('IMG_1005.JPG')

查看像素信息
imtool('img3.png')


图像的 +-*/ 四则运算

-
immultiply
Img = imread('img3.png');
figure; imshow(Img);
J = immultiply(Img, 1.5);
figure; imshow(J);

-
两张图片的matrix的size(像素长和宽)必须一样才可以 imadd
A = imread('IMG_8334.jpg')-50;
B = imread('IMG_8335.jpg')-50;
J = imadd(A,B);
imshow(J);

-
imhist() 柱状图
-
histeq() 直方图均衡化(histogram equalization)
Img2 = (imread('IMG_8334.jpg')./2)+50;
Img2 = Img2(:,:,1);
Img1 = histeq(Img2); %柱状均衡化
subplot(2,2, 1); imshow(Img2);
subplot(2,2, 2); imhist(Img2);
subplot(2,2, 3); imshow(Img1);
subplot(2,2, 4); imhist(Img1);

- 原来灰阶范围集中在一个很狭小的范围,图片很混沌模糊不清。
- 直方图均衡化:拉大对比度,将灰阶范围拉大,布满整个0~255区间(这个function:其实就是先减去一个数,然后再乘以一个大于1的数)。
- 老师讲的这个方法比较复杂:

图像的降噪处理

几何变换(Geometric Transformation)
- 前面的图像处理,做的是改变每一个pixel的数值。
- 现在的几何变换,要做的是改变每一个pixel的位置(location)。
网友评论