概述
opnecv全屏显示图像的demo如下:
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace cv;
using namespace std;
int main()
{
Mat src = imread("Black.jpg",1);
imshow("src",src);
namedWindow("FullScreen",CV_WINDOW_NORMAL);
setWindowProperty("FullScreen", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN );
imshow("FullScreen",src);
waitKey();
}
但是全屏后的第一行和第一列会有一条白边框。
去除白边框方法如下:
1.修改opencvsourcesmoduleshighguisrcwindow_w32.cpp文件中的函数:
static RECT icvCalcWindowRect( CvWindow* window ) //978行
将末4行注释掉:
/* Calculatess the window coordinates relative to the upper left corner of the mainhWnd window */
static RECT icvCalcWindowRect( CvWindow* window )
{
const int gutter = 1;
RECT crect, trect, rect;
assert(window);
GetClientRect(window->frame, &crect);
if(window->toolbar.toolbar)
{
GetWindowRect(window->toolbar.toolbar, &trect);
icvScreenToClient(window->frame, &trect);
SubtractRect( &rect, &crect, &trect);
}
else
rect = crect;
// rect.top += gutter;
// rect.left += gutter;
// rect.bottom -= gutter;
// rect.right -= gutter;
return rect;
}
2. 重新编译Opencv生成新的highgui_xxx.dll和highgui_xxxd.dll,将原来的替换掉就可以了。替换目标位置取决于使用的bin,例如,我当前的替换目标位置是C:Program FilesOpenCV249opencvbuildx86vc11bin。
参考:
http://blog.csdn.net/yangtrees/article/category/1106771
http://www.cnblogs.com/jhzhu/p/3216840.html
最后
以上就是激情朋友为你收集整理的OpenCV全屏显示图像H和W各有1像素的空白解决方法的全部内容,希望文章能够帮你解决OpenCV全屏显示图像H和W各有1像素的空白解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复