有时候我们只有.one的OneNote分区文件,没有OneNote的笔记本的.onetoc2目录文件。 比如OneNote 2016自动备份出来的文件,就是没有.onetoc2目录文件的。 我们需要重新打开这些备份文件,恢复出原来的......
2023-05-30 0
问题背景:
Qpen在画线时,可以选择画笔颜色,即QColor,一般都是选择三个参数,即R,G,B,例如黑色可以设置为QColor(0,0,0),白色即为QColor(255,255,255)。用户可以根据自己的需要进行选择颜色。
这样的画笔进行画线时即使画的比较快也不会出现中间断断续续的情况,
下面是颜色为黄色的画线展示,即QColor(255,255,0),如图:
但是Qpen还有第四个参数,即设置画笔的透明度,这个范围也是0-255.其中数字越小,颜色越亮,也可以理解为越浅。
下面是画笔设为亮度为30的画线图,即QColor(255,255,0,30):
我们可以看到画笔的颜色是比刚才浅的。
透明度越小,我们越能看到画笔下面的内容
代码示例
pen=QPen(Qt.SolidLine)#将画线设置为实线
pen.setColor(QColor(255,255,0,30))#设置画笔的颜色和透明度
pen.setWidth(self.linewidth)#设置画笔的宽度
#根据鼠标位值进行随意画线,
painter.drawLine(self.start_point,self.current_point)
想要达到的效果
想要达到画线后画线部分的像素值是稳定的,这样才方便后期的图像提取
问题分析
仅仅刚才的代码无法达到效果
当画线画的比较快时(即鼠标移动比较快时),会出现如下图情况:
显然我们直接用肉眼就可以看出来像素是不一样的。我们也可以进行像素查看,用下面代码:
importcv2
img=cv2.imread('image.jpg',1)
可以看出颜色会有较大波动,这并不是我们想要的结果
问题解决
最后解决这个问题的方式是同时让程序进行画线
即下面代码:
pen=QPen(Qt.SolidLine)#将画线设置为实线
pen.setColor(QColor(255,255,0,30))#设置画笔的颜色和透明度
pen.setWidth(self.linewidth)#设置画笔的宽度
#根据鼠标位值进行随意画线,
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
painter.drawLine(self.start_point,self.current_point)
然后再次尝试快速画线:
可以很明显的看到此时达到了颜色均匀的需求,并且是透明的实线
此时我们再次进行像素读取:
我们通过opencv进行读取,发现确实是一样的,至此我们就完成了需求。
但是这个原理我并不明白,望大佬不吝赐教
其实用过onenote的小伙伴应该知道,onenote上面的那个黄色的画笔和刚才实现的效果是一样的
——————————————————————————————
更新:
今天又发现了另外一种导致像素不一致的原因;
例如用像素(0,255,255)的画笔在.tif格式上的图片画线后,如果将画线后的图片保存为.jpg,然后读取图片的像素值发现会有一些像素差,变成了(3,254,255),其他颜色也是这样。所以推测图片间的格式转换会导致像素微变。目前还不确定,待以后进一步学习
相关文章
有时候我们只有.one的OneNote分区文件,没有OneNote的笔记本的.onetoc2目录文件。 比如OneNote 2016自动备份出来的文件,就是没有.onetoc2目录文件的。 我们需要重新打开这些备份文件,恢复出原来的......
2023-05-30 0
ONENOTE同步分区失败,显示正在等待另一个设备完成上载您的笔记? 一直在用OneNote,不过之前都没在意分区问题,就是一直添加页面放很多东西进去。 问题从昨晚开始出现的。打开OneNote,一如......
2023-05-30 0
OneNote网页版链接打开报错的解决 问题描述: 如果OneNote的网页版链接点击桌面应用打开,出现无法访问位置,或者没有访问权限等报错,如何解决? 解决办法: 点击桌面应用打开后,出现选......
2023-05-30 0
数字笔记珍宝插件Gem分别在多个插件里提供了轻量、中量,重量不同等级的OneNote搜索功能。 页面内搜索替换 GemforOneNote提供的页面内搜索与替换。 GemforOneNote提供的页面内搜索,主要是为替换......
2023-05-30 0