需要完成一个功能:opencv读取图像,然后全屏显示在投影仪扩展出来的桌面上以达到投影图案的效果,
代码如下:
String strFilePath;
for (int i=0; i<16; i++)
{
strFilePath = "matlabgen\\img_" + std::to_string(i) + ".bmp";
Mat inputImg = imread(strFilePath);
namedWindow("", WINDOW_NORMAL);
setWindowProperty("", WND_PROP_FULLSCREEN, WINDOW_FULLSCREEN);
moveWindow("", 1920, 0);
imshow("", inputImg);
waitKey(100);
}
destroyAllWindows();
Opencv的环境配置不再多说,整个工程使用的是cv命名空间。
生成路径名称:
strFilePath = "matlabgen\\img_" + std::to_string(i) + ".bmp";
由于String是opencv中的类型,定义为typedef std::string String;
在循环过程中,需要std::to_string(i)
完成数字转字符
读取图像:
Mat inputImg = imread(strFilePath)
建立窗口:
namedWindow("", WINDOW_NORMAL);
默认参数WINDOW_AUTOSIZE
下不可修改窗口大小
设置窗口属性:
setWindowProperty("", WND_PROP_FULLSCREEN, WINDOW_FULLSCREEN);
WND_PROP_FULLSCREEN
为属性名称, WINDOW_FULLSCREEN
为属性值
移动窗口到扩展桌面:
moveWindow("", 1920, 0);
我的笔记本显示器x向1920,故将Opencv窗口移动到坐标(1920,0)处
最后显示及等待:
imshow("", inputImg);
waitKey(100);