zoukankan      html  css  js  c++  java
  • dpi 分辨率

    c语言opencv,处理一幅图像,处理后的图像的长宽保持不变,

    如何保持图像的dpi和图像解像度保持不变?

     
    最佳答案
     
    opencv里提供了函数,貌似叫cv_resize函数,可以指定分辨率。只要获取原图像的分辨率,按比例重新指定新的分辨率就行了。
     
    追问
    这个函数我知道 是调整图片长宽的 我指的是DPI 图像的解像度保持不变,这个你知道吗?
     
    追答
    你的问题有点歧义,DPI指的是每英寸的像素点数。也就是说同样是1920*1080分辨率的一张图像,比如在7寸的面积内显示和在70寸的面积上进行显示,
    这个时候DPI才是有差别的。图像的分辨率在两次显示的过程中是没有变化的。也就是说DPI取决于屏幕大小,与图像的分辨率是没有关系的。
     
    追问
    那问一下,在通过VC处理后,图像的DPI可以保持不变吗?有什么方法吗?我发现原来是1200的通过处理后却变成了72
     
    追答
    我觉得你还是没太弄明白分辨率、dpi之间的区别。举个栗子啊,三星note3手机的分辨率是1920*1080,屏幕尺寸为5.7英寸,
    同时某款桌面显示器分辨率也是1920*1080,屏幕尺寸23英寸。现在你有一张1920*1080的图片同时用来给两款设备作为屏幕桌面背景,
    问,那个设备上DPI高?答案是在三星note3手机上的图片DPI高。这是因为在不提屏幕尺寸的前提下来谈DPI,那都是耍流氓!
    opencv能做的只是改变图片的分辨率,再举个例子吧:一张1920*1080分辨率的图片,在边长12英寸(不是对角线长度)的屏幕上进行显示。
    然后使用opencv进行分辨率缩放,调整为960*540(长宽各缩小一半,面积缩小为1/4)。如果还在原来的12寸显示器上显示,
    那么此时DPI降低为原来的1/4,因为尺寸没变,图像缩小了1/4。那像你说的想要DPI不变怎么办呢?
    用一个3英寸(边长,非指对角线长度)的屏幕来显示,这样图像缩小为1/4,显示屏幕也缩小为1/4.这样DPI保持不变。
  • 相关阅读:
    盛大自动化运维
    Redis used_cpu_sys used_cpu_user meaning (redis info中cpu信息的含义)
    redis info 详解
    htop详解
    线程问题排查思路
    网络协议基础 -- 东哥
    线程通讯
    进程
    day14
    day13
  • 原文地址:https://www.cnblogs.com/Crysaty/p/6531497.html
Copyright © 2011-2022 走看看