新闻排行榜

铃木,用python来处理待打印的深色背景图片 !,苹果手机壁纸

为了长期看电脑更舒畅,咱们的一般把代码编辑器、电路图、仿真波形等东西设置成深色布景。但写论文时,假如用截图的方法来刺进图片,打印后会大面积的黑色,会严重影响论文的排版作用。今日介绍用python来处理这些截图,让论文看起来更舒畅。

假定咱们要处理的图画如下:


在这里仍是要引荐下我自己建的Python开发学习群:683380553,群里都是学Python开发的,假如你正在学习Python ,小编欢迎你参加,咱们都是软件开发党,不定期共享干货(只要Python软件开发相关的),包含我自己收拾的一份2018最新的Python进阶材料和高档开发教程,欢迎进阶中和进想深化Python的小伙伴

为bmp类新增初始化函数

在python里,并不像C言语相同能够简略重载__init__函数。所以咱们只能为__init__函数添加可变参数来完成。另一种完成方法是运用@classmethod来装修,如下create_header_by_info(cls)。这个函数的第一个参数只能是class,返回值是class bmp的目标。

class bmp:
def __init__(self, w=1080, h=1920):
self.w = w
self.h = h
@classmethod
def create_header_by_info(cls, tp):
cls.tag = tp[0]
cls.fileSize = tp[1]
cls.rgbOffset = tp[4]
cls.infoSize = tp[5]
cls.pane = tp[8]
cls.color = tp[9]
cls.compress = tp[10]
cls.dataSize = tp[11]
return cls(tp[6], tp[7])

将深色布景图画反色

原理便是用255减去红绿蓝子像素的值,如下:

def color_inversion(self):
for row in range(image.h):
for col in range(image.w):
t = self.rgbData[row][col]
t[0] = 255 - t[0]
t[1] = 255 - t[1]
t[2] = 255 - t[2]
self.rgbData[row][col] = t

通过处理后的图画如下:



对反色后的图片二值化处理

先核算像素的灰色值gray=red*0.3 + green*0.59 + blue*0.11,假如gray大于127就让它显现成255,不然就显现成0。

def color_binarizaiton(self):
for row in range(image.h):
for col in range(image.w):
t = image.rgbData[row][col]
gray = t[2] * 0.3 + t[1] * 0.59 + t[0] * 0.11
if gray > 127:
image.rgbData[row][col] = [255, 255, 255]
else:
image.rgbData[row][col] = [0, 0, 0]

终究作用如下:



总结

今日介绍了python来处理图画的反色和二值化,原理简略,终究也到达的作用。完好源码下载地址:http://exasic.com/download/waveform.tar.gz

推荐新闻