【问题标题】:How to improve resolution of image?如何提高图像的分辨率?
【发布时间】:2016-01-14 00:17:57
【问题描述】:
import cv2.cv as cv
import time
from subprocess import Popen
capture = cv.CaptureFromCAM(0)
num = 0
while True:
img = cv.QueryFrame(capture)
cv.SaveImage('pic'+str(num)+'.jpg', img)
if num == 500:
    del(capture)
    break
if cv.WaitKey(10) == 27:
    break
num += 1

我正在使用 opencv 以 python 语言捕获图像。使用网络摄像头拍摄的图像是 480 x 640 分辨率。我需要增加它的分辨率。那么我该怎么做呢?代码如下。

【问题讨论】:

  • 如本文所述,stackoverflow.com/questions/11678527/…,使用 cv.Resize
  • 我推荐你使用更新的 cv2 接口,我认为更容易使用。如果你这样做了,请查看this Question/Answer,它涵盖了相机捕捉以及使用 cv2 调整大小。我会标记为那个重复,但它还没有被接受,所以我还不能。
  • 您的意思是:如何将多张图片合成为一张分辨率更高且质量仍然不错的图片?

标签: opencv python-2.7


【解决方案1】:

使用 VideoCapture 类的 set 函数,您可以将分辨率更改为特定值。这是一个示例 C++ 程序:

#include"opencv2/opencv.hpp"
using namespace std;
int main()
{
VideoCapture cap(0);
cap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);
Mat frame;
cap >> frame;
imwrite("test.jpg",frame);
}

你也可以在 python 中找到类似的函数。有关详细信息,请参阅this。您可以使用 VideoCapture 的 get 函数来获取 cam 的宽度或高度的当前值,例如:

cap.get(CV_CAP_PROP_FRAME_HEIGHT);

希望这能解决您的问题。 谢谢。

【讨论】:

    猜你喜欢
    • 2020-06-04
    • 2013-01-06
    • 1970-01-01
    • 2010-10-19
    • 2014-11-20
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多