b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

总结:数字图像处理实验(1)-直方图均衡化

电脑杂谈  发布时间:2021-01-12 18:18:30  来源:网络整理

实验主题:

编程可实现灰度和彩像的直方图均衡处理。要求提供原始图像的直方图,均衡后的图像及其直方图,以及直方图均衡化中使用的灰度转换曲线。请注意,需要对彩像进行编程,以实现将图像从RGB颜色空间转换为HSI,然后在亮度通道上执行直方图均衡化。

源代码:

对于灰度图像的处理,请给出原始图像的直方图,均衡图像及其直方图,以及直方图均衡后使用的灰度转换曲线。

// 灰度图像
clear 
%读入彩像将其灰度化
pic=imread(grey.png);	
imshow(pic)		%显示出来
title(输入的灰色png图像)
%绘制直方图
[m,n]=size(pic);	%测量图像尺寸参数
GP=zeros(1,256);	%预创建存放灰度出现概率的向量
N=zeros(1,256);
for k=0:255
    N(k+1) = length(find(pic==k));    
    GP(k+1)=length(find(pic==k))/(m*n); 	% 计算每级灰度出现的概率,将其存入 GP 中相应位置
end
figure,bar(0:255,GP,b)	%绘制直方图title(原图像直方图)
xlabel(灰度值) 
ylabel(出现概率)
%直方图均衡化
CF=zeros(1,256);
for i=1:256
    for j=1:i
        CF(i)=GP(j)+CF(i);	%计算 Sk
    end
end
S2=round((CF*256)+0.5);	%将 Sk 归到相近级的灰度
for i=1:256
    GPeq(i)=sum(GP(find(S2==i)));	%计算现有每个灰度级出现的概率
end
figure,bar(0:255,GPeq,b)	%显示均衡化后的直方图title(均衡化后的直方图)
xlabel(灰度值) 
ylabel(出现概率)
%图像均衡化
PA=pic;
for i=0:255
PA(find(pic==i))=S2(i+1);	%将各个像素归一化后的灰度值赋给这个像素
end
figure,imshow(PA)	
%绘制灰度级变换曲线
figure
plot(0:255,S2,r)
xlabel(均值化前)
ylabel(均值化后)
grid on
legend(灰度级变换曲线);

对于彩像处理,请给出原始图像的直方图,均衡后的图像及其直方图,以及直方图均等时使用的灰度转换曲线。请注意,需要对彩像进行编程,以实现将图像从RGB颜色空间转换为HSI,然后在亮度通道上执行直方图均衡化。

// 彩像
function pic2()
clear;
pic=imread(color.jpg);	%读入 JPG 彩像文件
imshow(pic)		%显示出来
title(原图像);
[M,N,D] = size(pic);
%提取单通道分量
pic=double(pic);
r=pic(:,:,1);
g=pic(:,:,2);
b=pic(:,:,3);
%实现转换
angle=acos(0.5*((r-g)+(r-b))./(sqrt((r-g).^2+(r-b).*(g-b))));
if (b>=g)
    H = 2*pi-angle;
else
    H = angle;
end
H=H/(2*pi);
S=1-3.*(min(min(r,g),b))./(r+g+b);
H(S==0)=0;
I=(r+g+b)/3;
I=uint8(I);%范围不超[0,255]
%统计像素亮度
INumPixel = zeros(1,256);%用长度为256的一维数组统计各灰度值的数目
for i = 1:M  
    for j = 1: N  
        INumPixel(I(i,j) + 1) = INumPixel(I(i,j) + 1) + 1;  
    end  
end  
%亮度直方图
GP = zeros(1,256);  
for i = 1:256  
    GP(i) = INumPixel(i) / (M * N * 1.0);  
end  
figure,bar(0:255,GP,b)	%绘制直方图title(原图像直方图)
xlabel(亮度值) 
ylabel(出现概率)
%直方图均衡化
S2 = zeros(1,256);  
for i = 1:256  
    if i == 1  
        S2(i) = GP(i);  
    else  
        S2(i) = S2(i - 1) + GP(i);  
    end  
end  
                                %S2乘上最大灰度255并且向上取整  
S2 = uint8(255 .* S2 + 0.5);  
                                %将原图像各个位置灰度值映射到新值  
for i = 1:M  
    for j = 1: N  
        Inew(i,j) = S2(I(i,j)+1);  
    end 
end
for i=1:256
    GPeq(i)=sum(GP(find(S2==i)));	%计算现有每个灰度级出现的概率
end
figure
plot(0:255,GPeq,b)	%显示均衡化后的直方图title(均衡化后的直方图)
xlabel(亮度值) 
ylabel(出现概率)
%绘制亮度级变换曲线
figure
plot(0:1:255,S2,r)
xlabel(均值化前)
ylabel(均值化后)
grid on
legend(亮度级变换曲线);
I=Inew;
H=H*2*pi;
I=double(I);
S=double(S);
H=double(H);
[m,n]=size(H);
%转换
for i = 1:m
    for j = 1:n
        if (0<=H(i,j))&(H(i,j)<2*pi/3)
            B(i,j)=I(i,j).*(1-S(i,j));
            R(i,j)=I(i,j).*(1+S(i,j).*cos(H(i,j))./cos(pi/3-H(i,j)));
            G(i,j)=3*I(i,j)-(R(i,j)+B(i,j));
        end
        if (2*pi/3<=H(i,j))&(H(i,j)<4*pi/3)
            H(i,j)=H(i,j)-2*pi/3;
            R(i,j)=I(i,j).*(1-S(i,j));
            G(i,j)=I(i,j).*(1+S(i,j).*cos(H(i,j)-2*pi/3)./cos(pi-H(i,j)));
            B(i,j)=3*I(i,j)-(R(i,j)+G(i,j));
        end
        if (4*pi/3<=H(i,j))& (H(i,j)<2*pi)
            H(i,j)=H(i,j)-4*pi/3;
            G(i,j)=I(i,j).*(1-S(i,j));
            B(i,j)=I(i,j).*(1+S(i,j).*cos(H(i,j)-4*pi/3)./cos(5*pi/3-H(i,j)));
            R(i,j)=3*I(i,j)-(G(i,j)+B(i,j));
        end
    end
end
output3=cat(3,R,G,B);
output3=uint8(output3);
figure
imshow(output3)

数字图像处理实验 灰度图像处理_灰度图像二值化_基于图像灰度值的碎纸片拼接复原0-1规划模型

实验结果

灰像

灰度原图

数字图像处理实验 灰度图像处理_灰度图像二值化_基于图像灰度值的碎纸片拼接复原0-1规划模型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

灰度图像二值化_数字图像处理实验 灰度图像处理_基于图像灰度值的碎纸片拼接复原0-1规划模型

在这里插入图片描述

彩像

在这里插入图片描述

晋亨话之秋

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通过比较原始图像和均衡图像,将原始图像的直方图与均衡直方图进行比较。均衡后的直方图的灰度值更加平均,不再集中在整个图像中。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-347330-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...