将图像数组转换为double型:im2double();
将图像数组转换为uint8型:im2uint8();
将图像数组转换为uin16型:im2unit16();
灰度图像->索引图像: [X,MAP] = gray2ind( I, [n]);
其中I表示存储灰度图像的变量,n表示颜色值(默认为64)
索引图象->灰度图像:I = ind2gray(X,MAP);
其中X表示图像矩阵,MAP表示颜色图数组变量
RGB彩色图像-》索引图象:[X,MAP] = grb2ind(RGB);
其中RGB参数表示存储RGB图像数据的变量。
索引图像->RGB彩色图像:RGB = ind2rgb(X,MAP);
其中X表示图像矩阵,MAP表示颜色图数组变量
RGB->灰度图像:I = rgb2gray(I_RGB);
图像的读取: imread('babbon.jpg');
返回矩阵大小: size(I);
返回矩阵的附加信息(如存储方式): whos I;
图像的写入: imwrite(I,'filename.png');
显示图像:imshow(I);
将索引图像、灰度图像、RGB彩色图像转换为二值图像:im2bw()
建立一个新的图像窗口: figure;
显示子图,并加上坐标轴:subimage();
获得图像的灰度直方图: imhist(I);
I = imread('1.jpg');
BW1 = im2bw(I);
BW2 = im2bw(I,0.3);
BW3 = im2bw(I,0.6);
figure
subplot(2,2,1),imshow(I);
title('original');
subplot(2,2,2),imshow(BW1);
title('\default');
subplot(2,2,3),imshow(BW2);
title('level = 0.3');
subplot(2,2,4),imshow(BW3);
title('level = 0.6');
I = imread('1.jpg');
g = rgb2gray(I); %彩色图像转化为灰度图像
figure
subplot(1,2,1),imhist(g);
subplot(1,2,2),imhist(g,64);
绘制归一化直方图
i = imread('1.jpg');
i = rgb2gray(i); %彩色图像转化为灰度图像
[m,n] = size(i);
[counts1, x] = imhist(i ,32);
%counts1保存的是落入每个灰度区间内的像素个数. 故用counts1除以图像中像素的总数就得到出现的概率
subplot(121), stem(x, counts1);%stem()函数是用来绘制针线图的
counts2 = counts1/m/n; %归一化
subplot(122), stem(x, counts2);
彩色图像的分量直方图
在彩色图像中,每个像素的颜色并不是简单的一个数值,而是由3个分量数值组成的一个向量。彩色图像的直方图,其实是对图像中所有像素的R、G、B分量分别统计得到的3个直方图。
i = imread('1.jpg');
[x,y,z] = size(i);
figure
subplot(221), imshow(i);
title('original image');
%提取红色分量
r = i;
%r(:,:,1) = i(:,:,1);
r(:,:,2) = zeros(x,y);
r(:,:,3) = zeros(x,y);
r = uint8(r);
subplot(222),imshow(r);
title('R-component-image');
%提取绿色分量
g = i;
g(:,:,1) = zeros(x,y);
%g(:,:,2) = i(:,:,2);
g(:,:,3) = zeros(x,y);
g = uint8(g);
subplot(223),imshow(g);
title('G-component-image');
%提取红色分量
b = i;
b(:,:,1) = zeros(x,y);
b(:,:,2) = zeros(x,y);
%b(:,:,3) = i(:,:,3);
b = uint8(b);
subplot(224),imshow(b);
title('B-component-image');
在上面的例子上再来做彩色图像的分量色彩直方图:
i = imread('1.jpg');
r = i(:,:,1);
g = i(:,:,2);
b = i(:,:,3);
subplot(1,3,1),imhist(r),title('R-component');
subplot(1,3,2),imhist(g),title('G-component');
subplot(1,3,3),imhist(b),title('B-component');
实现灰度均衡算法的函数 histeq()
i = imread('1.jpg');
i = rgb2gray(i);
LC = imadjust(i,[ ], [50/255;150/255]);
figure(1),subplot(221),imshow(LC);
title('low contrast');
figure(1),subplot(222),imhist(LC);%获得图像的灰度直方图
title('low contrast');
HE1 = histeq(LC);%对图像进行灰度均衡
figure(1),subplot(223),imshow(HE1);
title('histogram equalization');
figure(1),subplot(224),imhist(HE1);%获得图像的灰度直方图
title('histogram equalization');