数字加网(二)— —调幅加网算法及实现

数字加网(一)— —概念及分色合成
数字加网(二)— —调幅加网算法及实现
数字加网(三)— —调频加网算法及实现


在上一篇中提到调幅加网的方法有有理正切、无理正切和超细胞方法。无理正切方法,与有理正切本质相同,但是因为正切值为无理数,不能保证网格的角点与输出设备记录栅格的角点重合,需要进行一个强制重合的过程,一般数字加网方法里对其讨论较少。而超细胞的方法相当于外面一个大的阈值矩阵是有理正切,里面若干小的阈值矩阵是无理正切的。下图分别是有理正切和超细胞方法。

这里写图片描述

这里写图片描述

上段提到阈值矩阵,如下图,其实也可以叫做蒙板或者窗口,即在待加网的图像上“走”一圈下来(扫描整幅图像),当前像素值比阈值矩阵中相对应的值大,则像素值置为1,反之置为0。阈值矩阵本质就是一个矩阵,通过矩阵的值控制加网的网点形状(圆形、方形、菱形等)。当然不同的加网角度也对应不同的阈值矩阵。

阈值矩阵

阈值矩阵的设计

接下来我将给出调幅加网的算法及Python代码,主要参考徐锦林的《调幅加网阈值矩阵设计方法与加网原理》,文中基于最小阈值矩阵原理,详述12×12网格的最小阈值矩阵的设计原则。网格构成为12×12时,加网角度0度,45度,15度(14.04)和75度(75.96),对应的网格大小分别为为144、128与153,加网阈值的个数远小于255。加网时需将灰度图像的像素值与加网阈值比较,因此必须建立两者的转换(映射)关系。可采用以下公式处理。

转换公式
式中fix表示取最小整数(下同),Qmax为对应的网格的最大值(144,218,513)。

0
加网角度为0度的阈值矩阵

45
加网角度为45度的阈值矩阵

15
加网角度为14.04度的阈值矩阵

75
加网角度为75.96度的阈值矩阵

后两个阈值矩阵分别为网线角度14.04°和75.96°时的最小阈值矩阵,因列数太多,故将表格拆开成左右两部分。不难发现,如将这两个矩阵扩展为51×51的方阵,则它们互为转置矩阵。

加网过程及算法

采用最小阈值矩阵进行灰度图像加网的过程如图所示。设原灰度图像大小(像素数)为(W ×H ),在网格构成为12×12时,则加网的二值图像大小(像素数)必为N (12×W )×M (12×H )。加网时从上到下,从左到右扫描加网图像的每一个像素,由其坐标值如图中的(m ,n ),求出该像素在阈值矩阵中对应的阈值坐标(k ,l ),得到加网阈值Q (k ,l ),同时从原灰度图像中查到与之对应的像素坐标(i ,j ),得到原灰度图像的像素值F (i ,j ),然后将灰度图像的像素值F (i ,j )与阈值Q (k ,l )比较,即可决定加网图像中该像素的取值,即决定P (m ,n )是“1”还是“0”,从而完成一个像素的加网过程。为了清楚地表示加网过程,图中的箭头处加了序号。
过程

0度加网算法

### Digital Screening
### Author: Sin_Geek
### Date: 2015-05-17

from PIL import Image

time = 12
K = 12
L = 12
N = 144
im = Image.open('lena0.jpg').convert('L')
im2 = Image.new("1",(im.size[0]*time,im.size[1]*time))

Mask=[144,140,132,122,107,63,54,93,106,123,133,142,
    143,137,128,104,94,41,31,65,98,116,120,139,
    135,131,114,97,61,35,24,55,80,103,113,125,
    126,117,88,83,56,29,15,51,68,90,99,111,
    109,100,81,77,48,22,8,28,47,76,85,96,
    91,44,16,12,9,3,5,21,25,33,37,73,
        59,58,
  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 32
    评论
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值