我正在使用Android手机拍摄一张纸张的 640x480 分辨率照片,上面有白色背景和彩色数字。我有以下问题:
在第二张图片上,我添加了某些像素的 RGB 值。按照设计(图片在打印前以PDF格式绘制),品红色和白色背景之间没有边框/边缘/边距。但在图片中,我得到背景和洋红色颜色之间描述的边框/边缘/边距。
我的问题如下:这种影响的原因是什么?它的名字是什么?如何防止此效果出现在我的照片中并实现两种颜色之间平滑过渡的效果?我使用了联想Vibe P1(m),HTC,三星酷睿双核,三星S4,所有这些都在图片中显示了这种效果。问题更严重,因为我的照片中的两种不同颜色必须不同,当这种效果出现在具有洋红色颜色的印刷数字中时,它们或多或少变成灰色或黑色,我需要它们是接近洋红色的颜色。
答案 0 :(得分:0)
其中一些可能是JPEG压缩,但主要是光学芯片输出有点噪声和混叠。在640x480时,噪声将非常低,因为大多数噪声都具有如此低的分辨率。但是混叠本身会更糟。
别名是什么意思:
让我们假设纸上的数字打印为(精细分辨率):
***_____ ("*" being magenta, "_" being white paper)
****____
******__
*****___
****____
**______
这部分纸张适合640x480照片的单个像素。
应该是什么颜色?一半的区域是白色的,一半是品红色,所以它大约是“(洋红色+白色)/ 2”颜色,但这并不是颜色和亮度在光学上如何混合,所以最终“混叠”像素的色调可能是更多的是灰色,而不是你期望的。
您应该以这样的方式设计您的纸张图案,您可以始终合理地检测一些较大的洋红色区域和附近的边缘(打印与白色),然后附近的边缘标记为检测到的区域的品红色,即使像素位于边缘看起来更像是灰色。
如果您有两种颜色且只有字体文本,请使用BOLD字体和更高的相机分辨率,并使用一些启发式方法在小区域上累积颜色信息,甚至可能在几个捕获的图像上(时间)...但字体将是在数值上非常接近灰色。实际上,当你在纸上打印灰色文字,并开始用手机相机捕捉它时,它会有一些颜色相当,洋红色和绿色是最喜欢的像素(输入数据中的噪音+压缩文物)。
同样尝试不同的颜色,洋红色是一种不吉利的选择,因为它主要包括红色和蓝色,而通常最敏感的硬件通道是绿色 - 因为人的眼睛对绿光最敏感,当硬件设计开始时达到一些限制,他们需要降低某些通道的灵敏度,第一个选择是蓝色(对人眼最不敏感),然后是红色,最保真度保持绿色。使用高质量的捕获设备不应该有太多问题,但是使用低/中质量的硬件和JPEG压缩,基于绿色的颜色将获得一些优势。
另外,我完全忘了提到图像的清晰度。从捕获设备接收完美聚焦和静态(在移动方面)图像需要相当多的运气。在处理视频流时,大多数图像将通过设备的移动/抖动以及非理想的光学焦点来模糊。这将使图像上的清晰打印边缘变得模糊,并且模糊将再次比简单的数学((品红色+白色)/ 2)数字更多地遭受色调损失。
光线条件......夏天进行的许多计算机视觉/ OCR实验会让你感到惊讶,当你试图在冬天重复这些测试时......