我需要在使用opencv读取之前增加dpi我的图像。问题是:
我在谷歌搜索,几乎每个答案建议使用<script type="text/javascript">(function(){window.CommonSuiteNavData = {Scripts: ["/_layouts/15/mylinks.js?rev=HjKTiRHbpPJBEU6OeYZGyw%3D%3DTAG0"],...
resize
cv2.resize()
image = cv2.imread("source.png")
resized_image = cv2.resize(image, (100, 50)) #I need to change it to 300 DPI
只是为了改变图像的大小,但毕竟没有增加图像中的dpi,因为我尝试使用它,当我在photoshop中检查时,dpi没有改变
显示请帮助我解决2个问题
如何用opencv做到这一点?
老实说,我需要将dpi更改为300,为什么我需要知道当前的dpi?因为如果它已经resize
,所以我不需要转换它。
oya我用python
做答案 0 :(得分:2)
dpi只是JPEG / TIFF / PNG标题中的一个数字。在您打印图像之前,它与世界和他的狗完全无关,然后它决定了图像尺寸的大小(以像素为单位)。
在图像处理过程中,它是无关紧要的。唯一感兴趣的是你拥有的像素数。这是图像质量或信息内容的最终决定因素 - 但是你想要描述它。
我不相信你可以用 OpenCV 来设置它。您当然可以在终端中使用 ImageMagick 进行设置:
mogrify -set density 300 *.png # v6 ImageMagick
magick mogrify -set density 300 *.png # v7 ImageMagick
您可以查看:
identify -format "Density: %x x %y" SomeImage.jpg # v6 ImageMagick
magick identify -format ... as above # v7 ImageMagick
你可以在终端中使用exiftool
做类似的事情 - 请注意,exiftool
比 ImageMagick 更小,更容易维护,因为它是&#34;只是&#34; 一个(非常有能力的)单个Perl脚本:
从EXIF IFD1信息中提取图像分辨率:
exiftool -IFD1:XResolution -IFD1:YResolution image.jpg
提取包含单词&#34;分辨率&#34;的所有标签。从图像|:
exiftool '-*resolution*' image.jpg
在image.jpg
上设置X / Y分辨率(密度):
exiftool -xresolution=300 -yresolution=300 image.jpg
以下是我在答案开始时的意思......
使用 ImageMagick 创建没有dpi信息的图像1024x768:
convert -size 1024x768 xc:black image.jpg
现在检查一下:
identify -verbose image.jpg
Image: image.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: PseudoClass
Geometry: 1024x768+0+0
Units: Undefined
Colorspace: Gray
Type: Bilevel
...
...
现在更改dpi并设置dpi单位并再次检查:
mogrify -set density 300 -units pixelsperinch image.jpg # Change dpi
identify -verbose image.jpg # Examine
Image: image.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: PseudoClass
Geometry: 1024x768+0+0 <--- Number of pixels is unchanged
Resolution: 300x300 <---
Print size: 3.41333x2.56 <--- Print size is now known
Units: PixelsPerInch <---
Colorspace: Gray
Type: Bilevel
...
...
现在你可以看到我们突然知道打印件有多大,而且像素数没有变化。
答案 1 :(得分:2)
即使这是一篇过时的文章,我也想说Tesseract已经过测试,发现当字符高度在30像素左右时效果更好。请检查以下链接:
答案 2 :(得分:0)
DPI是图形设备的继承属性 - 显示器,扫描仪,相机等。例如 - 假设我们正在扫描图像,我们希望获得更高质量的图像 - 因此我们在扫描仪选项中设置更高的DPI值。如果没有更好的DPI选项 - 所以我们需要购买更好的扫描仪,支持更多的扫描分辨率。有些设备/方法能够实现100 000 DPI