matlab实现降低图片的分辨率

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bi_diu1368/article/details/80301195

本文用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
%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('采样化后的灰度化直方图');

猜你喜欢

转载自blog.csdn.net/bi_diu1368/article/details/80301195