半色调又称灰度级,它是反映图像亮度层次、黑白对比变化的技术指标。传真机具有的半色调的级数越高,其所记录与传输得到副本的图像层次就越丰富、越逼真。
在我们的日常生活中,所遇到的图像可大致分为两大类:连续调图像和半色调图像。
半色调图像如常见的印刷品图像,其由浅到深或由淡到浓的变化,是靠网点面积大小或网点覆盖率来表现的。
那么半调转换的原理就是,将一个像素扩大成N * N的像素,根据这一个像素的灰度去填充这个N * N矩阵!
如此一来是不是十分明了了,那么我们就可以去动手实践了
如果要实现4 * 4的halftone转换,即一个像素点我们就要划分成16个格子,那么一个灰度图像有256个灰度级,划分成16个格子就是256 / 16等级,如果进行5 * 5的halftone转换,那么256个灰度级就要划分成256 / 25个等级。
我们根据划分的16个格子,如果这个灰度值是255,那么就是将255 //16 = 15个格子全部填充满,如果灰度值只有4那么就不进行填充4 // 16 = 0,将灰度值划分为X // n个等级去填充这n个格子
于是通过MATLAB代码实现可以轻而易举的完成如下效果,分别为有序填充(即按照一定顺序规律去填充这16个格子)(如图halftone order)和随机填充(填充x个,但是每个4 * 4位置不固定)(如图halftone random)
详细代码请私信博主
详细代码请私信博主
详细代码请私信博主
img = imread('lena_gray_512.tif');
%每一个像素将被拆解为16个格子
img_halftone = zeros(512*4, 512*4);
img_halftone_order = zeros(512*4, 512*4);
%随机进行halftone
for i = 1: 512
for j = 1: 512
t = floor(img(i, j) / 16);
...
...
...