在阅读 ocr
in opencv
之前,我需要增加图像的 dpi。问题是:
- 我现在不知道图像的 dpi
- 我不知道如何增加图像的 dpi
我在谷歌搜索,几乎每个答案都建议使用 cv2.resize
image = cv2.imread("source.png")
resized_image = cv2.resize(image, (100, 50)) #I need to change it to 300 DPI
resize
只是改变了图片的大小,毕竟没有增加dpi。我尝试使用它,然后在 Photoshop 中检查,dpi 没有改变。
怎么做 opencv
?
我需要将 dpi 更改为 300,为什么我需要知道当前的 dpi?因为如果它已经是 dpi > 300
,我不需要转换它。
我用蟒蛇来做。
原文由 yozawiratama 发布,翻译遵循 CC BY-SA 4.0 许可协议
dpi 只是 JPEG/TIFF/PNG 标头中的一个数字。在您 打印 图像之前,它与世界和他的狗完全无关,然后它确定打印的尺寸将以像素为单位的图像尺寸。
在图像处理过程中,它是无关紧要的。唯一感兴趣的是您拥有的像素数。这是图像质量或信息内容的最终决定因素——无论您如何描述它。
我不相信你可以用 OpenCV 设置它。您当然可以在终端中像这样使用 ImageMagick 进行设置:
你可以检查它:
您可以在终端中使用
exiftool
做类似的事情 - 请注意exiftool
比 ImageMagick 小得多并且更容易维护,因为它 “只是” 一个(非常有能力的)单个 Perl 脚本:从 EXIF IFD1 信息中提取图像分辨率:
从图像中提取名称中包含单词“Resolution”的所有标签|:
在
image.jpg
上设置 X/Y 分辨率(密度):这是我在回答开头的意思的一个小例子……
使用 ImageMagick 创建没有 dpi 信息的 1024x768 图像:
现在检查一下:
现在更改 dpi 并设置 dpi 单位并再次检查:
现在你可以看到,我们突然知道打印出来的尺寸有多大,而且像素数没有改变。