用matlab怎么实现图像灰度级的量化,也就是灰度级压缩,从256级量化到16级

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用matlab怎么实现图像灰度级的量化,也就是灰度级压缩,从256级量化到16级相关的知识,希望对你有一定的参考价值。

可以参考下面的方法。

直接从灰度矩阵转换,转换到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

参考技术A 直接从灰度矩阵转换,转换到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
即可
参考技术B 你要实现均匀量化还是非均匀量化的

matlab图像转灰度图像

在matlab里怎么使得图像转换为只跟亮度有关的灰度图像?然后怎么获取这个灰度图像亮度值?这个亮度值是可以表示一个平面凹凸不平的平均深度吗?非常感谢。

参考技术A

    如果是彩色图片的话 转成hsv色彩空间,然后v通道内好像就是亮度分量 直接显示v通道得到的就是基于亮度的原图的灰度化。

    图像在matlab里面实际就是矩阵,矩阵每个值反映的就是这个像素点的灰度值,v通道的话对应的即为亮度值。

    这个只是一个理解上的问题了, 平时我们所说的图像深度指的是 用来表示像素值的bit个数  例如深度为1的为 二值图 深度为8的则为256灰度图  ,当然 你用8bit也可以做成伪彩色图片 只是8比特表示三个通道的值 所能区分的颜色比较少而已 关键在于你想进行什么样的处理了

参考技术B 图像转灰度请使用

rgb2gray
取亮度值就直接取就行了比如
彩色图象im
gray = rgb2gray(im); 得到灰度图像
gray(i,j)就是第i行第j列的亮度值

这个亮度值是可以表示一个平面凹凸不平的平均深度吗? 不懂是什么问题。。追问

比如一个凹凸不平的面,我想知道这个面底面和顶面的平均距离,用亮度值可以表示吗?

追答

这个要看你的图片到底什么样子了,用灰度值减一下得到的结果肯定可以反应深度的信息,但是这个值和真实深度之间应该会有一些尺度变换之类的东西,这个要具体问题具体分析了

本回答被提问者采纳
参考技术C 请查看rgb2ind函数。

以上是关于用matlab怎么实现图像灰度级的量化,也就是灰度级压缩,从256级量化到16级的主要内容,如果未能解决你的问题,请参考以下文章

matlab中灰度图像矩阵的大小问题怎么操作?

matlab各种灰度变换怎么实现以及观察

matlab怎么将灰度图像转为rgb图像

matlab中怎么把图像变成灰度图

matlab图像转灰度图像

matlab中将灰度图转化为二值图后,有如何转化为灰度图