如何解决过滤以从文档的彩色图像创建Xerox /影印图像
我有彩色的文档图像。样本输入
(摘自https://www.indiamart.com/proddetail/pan-card-21687536812.html)
我希望以此创建逼真的复印/复印图像。大多数复印/复印设置为低调。 这是一个示例输出(示例输出不是示例输入的施乐-我在网上都找不到相同的图像) (摘自http://shrikantmail7862.blogspot.com/2016/06/)
注释输出不是彩色图像的简单黑白。
我正在寻找一种工具/代码/算法来帮助我。我需要对超过0.1M的图像进行此操作 我确信图像处理中必须有这样的过滤器。寻找合适的指针
解决方法
要创建类似xerox的效果,一种方法是将图像转换为灰度,然后减少色彩空间。
def xeroxFilter(imgPath,colorSpaceReduction=8,rotate=False,fillColor=(255,255,255)):
'''Takes image as input and returns a xerox like image of the input image.
impPath: Name of Image(keep the images in the same folder as this script)
colorSpaceReduction: Reducing the color space. Higher the value,Higher the reduction.
rotate: Rotate to the image
fillColor: Specify the RGB value of the background color after roatation
'''
print("Original Image")
cv2_imshow(cv2.imread(imgPath))
print('GreyScale')
cv2_imshow(cv2.imread(imgPath,cv2.IMREAD_GRAYSCALE))
print('Color Space Reduced')
color_reduced_img = cv2.imread(imgPath,cv2.IMREAD_GRAYSCALE) // colorSpaceReduction * colorSpaceReduction + colorSpaceReduction // 2
cv2_imshow(color_reduced_img)
file_name = 'ColorSpaceReduced-'+imgPath.split('.')[0]+'.png'
cv2.imwrite(file_name,color_reduced_img)
if rotate:
print("Rotated")
img = Image.open(file_name)
rgb_img = Image.new("RGBA",img.size)
rgb_img.paste(img)
rotated_img = rgb_img.rotate(random.randint(-25,25),expand = 1,fillcolor = fillColor)
display(rotated_img)
rotated_img.save('Rotated-'+file_name)
print("Original Image")
cv2_imshow(cv2.imread(imgPath))
xeroxFilter('MCRV7.jpg',rotate=True)
色彩空间缩减代码(学分@elizer)
将第一个图像传递到脚本时的输出可以在下面找到:
[1
'''将图像作为输出,并返回输出图像的原始图像。 impPath:图像名称(将图像保存在与此脚本相同的文件夹中) colorSpaceReduction:减少色彩空间。值越高,减少量越大。 旋转:旋转到图像 fillColor:指定旋转后背景色的RGB值
print("Original Image")
cv2_imshow(cv2.imread(imgPath))
print('GreyScale')
cv2_imshow(cv2.imread(imgPath,cv2.IMREAD_GRAYSCALE))
print('Color Space Reduced')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。