使用python和opencv显示完整图像时的白色边框

时间:2013-07-30 13:49:30

标签: python opencv numpy

这个问题与此有关: how to display a full screen images with python2.7 and opencv2.4

我想全屏显示黑色图像,我甚至创建了具有相同屏幕分辨率的黑色图像。 但是我在屏幕的顶部和左侧有一个小白条纹。 我不知道我的屏幕是否是未对齐的问题或我的代码。我试过2个显示器,显示白色条纹。

因此,如果您在下面运行此代码,您会获得完整的黑色图像吗?

import numpy as np
import cv2



    if __name__ == "__main__":
        img =  cv2.imread('nero.jpg')
        cv2.namedWindow("test", cv2.WND_PROP_FULLSCREEN)
        cv2.setWindowProperty("test", cv2.WND_PROP_FULLSCREEN, cv2.cv.CV_WINDOW_FULLSCREEN)
        cv2.imshow("test",img)
        cv2.waitKey(0)
        cv2.destroyAllWindows() 

编辑: 这种方法对我不起作用。你知道另一种方式或图书馆来显示全屏图像吗?

编辑2:仍未解决,我开始认为这是一个openCv错误

2 个答案:

答案 0 :(得分:1)

我有同样的问题,窗口的左侧和顶部有1个像素的白色条纹。在多台显示器上进行了测试。 OpenCV版本3.4.2

但是在我的情况下,有一种解决方法可以很好地工作(另请参见https://gist.github.com/goraj/a2916da98806e30423d27671cfee21b6)。这是代码:

$actual_link = "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$parts = parse_url($actual_link);
parse_str($parts['query'], $query);
$downloads = json_decode($query["downloads"]);

$files = array();

foreach ($downloads as $download) {
  array_push($files, "https://website.com/downloads/". $download->value .".pdf");
}



# create new zip object
$zip = new ZipArchive();

# create a temp file & open it
$tmp_file = tempnam('.', '');
$zip->open($tmp_file, ZipArchive::CREATE);

# loop through each file
foreach ($files as $file) {
    # download file
    $download_file = file_get_contents($file);

    #add it to the zip
    $zip->addFromString(basename($file), $download_file);

}

;
# close zip
$zip->close();


# send the file to the browser as a download
header('Content-disposition: attachment; filename="test.zip"');
header('Content-type: application/zip');
readfile($tmp_file);
unlink($tmp_file);

答案 1 :(得分:0)

是的我做到了。

img = np.zeros((900, 1600)) #my aspect ratio is 16x9
cv2.namedWindow("test", cv2.WND_PROP_FULLSCREEN)
cv2.setWindowProperty("test", cv2.WND_PROP_FULLSCREEN, cv2.cv.CV_WINDOW_FULLSCREEN)
cv2.imshow("test",img)
cv2.waitKey(0)

给了我一个全黑屏幕。您确定使用的是正确的宽高比吗?