matlab修改图像分辨率_matlab实现降低图⽚的分辨率
本⽂⽤matlab实现降低图⽚的分辨率,假设⼀张500万像素的图⽚,使⽤该⽅法可以将像素降低到5万,但通过观察降低后的直⽅图 ,发现并没有多少区别。
实现具体思路:
将彩⾊图⽚灰度化后,获得其灰度直⽅图。确定其图⽚的长L和宽W,然后对其矩阵进⾏操作。L和W均设置步长为10,获得⼀个(L/10)* (W/10)的矩阵,接着显⽰该直⽅图。
结果如图所⽰:
(1)曝光不⾜
实验结果:
(2)曝光正常
实验结果:
(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
matlab直方图
%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('采样化后的灰度化直⽅图');