美文网首页
MATLAB 08 Image_Processing I

MATLAB 08 Image_Processing I

作者: 孟圆的笔记 | 来源:发表于2019-03-20 22:36 被阅读0次

黑白两色图

  • 每个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;
RGB图 一张图片一定是由三层构成,拿出一张彩图的其中一层来显示,系统就会认为你的三层值一样,RGB三色相同-组成的必定是灰色。                       所以拆开来显示,分别就是:红通道的灰度图、绿通道的灰度图、蓝通道的灰度图。                        所以灰度图可以直接用二维矩阵表示。 彩色图一定包含 R、G、B 三层,只显示一种颜色可以将另外两层置为0(黑色),黑色就是什么都没有

 

 

一个pixel就占一个byte(字节) , 存放类型:无符号整型

>> whos
  Name       Size         Bytes     Class    
  Img      431x525x3     678825     uint8               

 

 

查看照片info

imageinfo('IMG_1005.JPG')      

 

 

查看像素信息

imtool('img3.png')
灰度图的RGB三层值一样

 

 

 

图像的 +-*/ 四则运算


 

  • 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);
因为两张图片相加,数值大部分接近或超过255就会发白,所以先减去一个数字使得图片加深一点

 

  • 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)。

相关文章

网友评论

      本文标题:MATLAB 08 Image_Processing I

      本文链接:https://www.haomeiwen.com/subject/oartvqtx.html