版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bi_diu1368/article/details/80301195
本文用matlab实现降低图片的分辨率,假设一张500万像素的图片,使用该方法可以将像素降低到5万,但通过观察降低后的直方图 ,发现并没有多少区别。
实现具体思路:
将彩色图片灰度化后,获得其灰度直方图。确定其图片的长L和宽W,然后对其矩阵进行操作。L和W均设置步长为10,获得一个(L/10)*(W/10)的矩阵,接着显示该直方图。
结果如图所示:
(1)曝光不足
实验结果:
(2)曝光正常
实验结果:
扫描二维码关注公众号,回复:
2911070 查看本文章
(3)过度曝光
实验结果:
matlab实验代码:
clear;clc;
image=imread('3.jpg');
%转化灰度图
if size(image,3)>1
image=rgb2gray(image);
end
[M,N]=size(image);
hist_im=imhist(image); %计算直方图
subplot(121);
bar(hist_im);%画直方图
title('原图灰度化的直方图');
%采样化后的矩阵大小
X=floor(M/10);
Y=floor(N/10);
x=1;y=1;
%采样化后的矩阵
A=zeros(X,Y);
%进行采样,每行和每列均隔十个一取
for m=1:10:M
for n=1:10:N
A(x,y)=image(m,n);
y=y+1;
if(y>Y)
x=x+1;
y=1;
end
end
end
%A为采样后的矩阵,类型是double,将其强制转化为uint8
A=uint8(A);
if size(A,3)>1
A=rgb2gray(A);
end
histA_im=imhist(A);
subplot(1,2,2);
bar(histA_im);
title('采样化后的灰度化直方图');