我想在Mac OS X 13'上使用opencv显示图像。图像大小为1920×1080。当我运行此代码时,我只看到图像的一部分。我需要将图像适合屏幕。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include "opencv2/opencv.hpp"
#include<string.h>
using namespace cv;
using namespace std;
int main()
{
Mat image=imread("/Users/rafikgouiaa/Qt/projects/MakeVideo/build-MakeVideo- Desktop_Qt_5_0_2_clang_64bit-Debug/im.jpg");
namedWindow( "Display frame",CV_WINDOW_AUTOSIZE);
imshow("Display frame", image);
waitKey(0);
return 0
}
答案 0 :(得分:23)
如果您需要显示大于屏幕分辨率的图像,则需要调用
namedWindow("Display frame", WINDOW_NORMAL)
在imshow之前。
请设置所需的窗口调用大小
cv::resizeWindow("Display frame", WIDTH, HEIGHT);
有关详细信息,请参阅http://docs.opencv.org/modules/highgui/doc/user_interface.html#imshow
答案 1 :(得分:6)
将CV_WINDOW_AUTOSIZE
传递给namedWindow()
会使窗口大小自动调整以适合显示的图像。并且您看到图像的一部分可能是因为图像对于您的屏幕来说太大了。
要计算,您可以先将图像调整为较小的尺寸。像这样:
Mat image=imread("...");
resize(image, image, Size(image.cols/2, image.rows/2)); // to half size or even smaller
namedWindow( "Display frame",CV_WINDOW_AUTOSIZE);
imshow("Display frame", image);
答案 2 :(得分:0)
你需要把CV_WINDOW_OPENGL改为CV_WINDOW_AUTOSIZE