MATLAB 08 Image_Processing I

2019-03-20  本文已影响0人  孟圆的笔记

黑白两色图

 

 

灰度图

 

 

彩色图

 

 

读取和显示图片

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三层值一样

 

 

 

图像的 +-*/ 四则运算


 

Img = imread('img3.png');
figure; imshow(Img);

J = immultiply(Img, 1.5);
figure; imshow(J);
数乘——变亮,对比度拉大

 

A = imread('IMG_8334.jpg')-50;
B = imread('IMG_8335.jpg')-50;

J = imadd(A,B);
imshow(J);
因为两张图片相加,数值大部分接近或超过255就会发白,所以先减去一个数字使得图片加深一点

 

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);
直方图均衡化:拉大对比度

 

 

图像的降噪处理

高斯滤波、中值滤波、维纳滤波

 

 

几何变换(Geometric Transformation)

上一篇 下一篇

猜你喜欢

热点阅读