matlab图像量化:编写代码,展示不同量化模式下的结果

matlab图像量化:编写代码,展示不同量化模式下的结果,第1张

直方吵返敏图均衡化也是非线性量化的一种吧,网上找到的,作者写的非常详细。

% 数字图像处理程序作业

% 本程序能升枝将JPG格式的彩色图像世源文件灰度化并进行直方图均衡

%

% 输入文件:PicSample.jpg 待处理图像

% 输出文件:PicSampleGray.bmp 灰度化后图像

%PicEqual.bmp 均衡化后图像

%

% 输出图形窗口说明

% figure NO 1 待处理彩色图像

% figure NO 2 灰度化后图像

% figure NO 3 直方图

% figure NO 4 均衡化后直方图

% figure NO 5 灰度变化曲线

% figure NO 6 均衡化后图像

% 1, 处理的图片名字要为 PicSample.jpg

% 2, 程序每次运行时会先清空workspace

% 作者archiless lorder

clear all

%一,图像的预处理,读入彩色图像将其灰度化

PS=imread('PicSample.jpg') %读入JPG彩色图像文件

imshow(PS) %显示出来 figure NO 1

title('输入的彩色JPG图像')

imwrite(rgb2gray(PS),'PicSampleGray.bmp')%将彩色图片灰度化并保存

PS=rgb2gray(PS) %灰度化后的数据存入数组

figure,imshow(PS) %显示灰度化后的图像,也是均衡化前的样品 figure NO 2

title('灰度化后的图像')

%二,绘制直方图

[m,n]=size(PS) %测量图像尺寸参数

GP=zeros(1,256) %预创建存放灰度出现概率的向量

for k=0:255

GP(k+1)=length(find(PS==k))/(m*n)%计算每级灰度出现的概率,将其存入GP中相应位置

end

figure,bar(0:255,GP,'g')%绘制直方图figure NO 3

title('原图像直方图')

xlabel('灰度值')

ylabel('出现概率')

%三,直方图均衡化

S1=zeros(1,256)

for i=1:256

for j=1:i

S1(i)=GP(j)+S1(i) %计算Sk

end

end

S2=round(S1*256) %将Sk归到相近级的灰度

for i=1:256

GPeq(i)=sum(GP(find(S2==i))) %计算现有每个灰度级出现的概率

end

figure,bar(0:255,GPeq,'b') %显示均衡化后的直方图figure NO 4

title('均衡化后的直方图')

xlabel('灰度值')

ylabel('出现概率')

figure,plot(0:255,S2,'r')%显示灰度变化曲线figure NO 5

legend('灰度变化曲线')

xlabel('原图像灰度级')

ylabel('均衡化后灰度级')

%四,图像均衡化

PA=PS

for i=0:255

PA(find(PS==i))=S2(i+1)%将各个像素归一化后的灰度值赋给这个像素

end

figure,imshow(PA)%显示均衡化后的图像 figure NO 6

title('均衡化后图像')

imwrite(PA,'PicEqual.bmp')

可以参考下面的方法。

直接从灰度矩阵转换,转换卖扒悔到A级:

if isa(im_mat,'uint8')

im_mat = floor(im_mat/255*A-1)

end

本题,则为

if isa(im_mat,'uint8')

im_mat = floor(im_mat/255*15)

end

即此核可

扩展资料:

Matlab参考函数

ones( )创建一个所有元素都为1的矩阵,其中可以制定维数,1,2….个变量

zeros()创建一个所有元素都为0的矩阵

eye()创建对角元素为1,其他元素为0的矩阵

diag()根据向量创建对角矩阵,即以向量的元素为中正对角元素

magic()创建魔方矩阵

horcat C=[A,B],水平聚合矩阵,还可以用cat(1,A,B)

参考资料来源:百度百科-MATLAB

降采样就是隔行或隔列对图像进行采样!

clc

clear

close all

data=imread('X.bmp')

[row,line]=size(data)

data_new=data(1:2:row)%隔两行返芹昌采样

%data_new=data(1:2:line)%隔两列漏扒采样首模

imwrite(data_new,['directory\','filename'])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12451195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存