在OpenCV IMShow中显示不同的图像
Show different images in OpenCV imshow
我想显示图像以使用opencv imshow仿真动画。目前,我有以下代码:
int display_avatar(int idx){
Mat image;
char* imagepath = new char[128];
switch (idx){
case 0:
strcpy(imagepath, "c:\images\a.png");
break;
case 1:
strcpy(imagepath, "c:\images\b.png");
break;
default:
break;
}
image = imread(imagepath, IMREAD_COLOR);
if (!image.data){
cout << "Could not open or find the image" << std::endl;
return -1;
}
namedWindow("Display window", WINDOW_AUTOSIZE);
imshow("Display window", image);
waitKey(0);
return 0;
}
int main(){
display_avatar(0);
getchar();
display_avatar(1);
getchar();
return 0;
}
现在,我使用getchar()
触发动画。但是我发现该程序将弹出两个窗口(控制台窗口和一个namedWindow
)。只有关闭namedWindow
之后,才会出现另一个窗口。我该如何在同一窗口内进行图像更改?
在display_avatar()内删除waitkey(0),然后用waitkey(0)替换主函数中的getchar()。删除名为Window()调用,它是多余的。
您可以将Waitkey视为GetChar的OpenCV版本。实际上,c = waitkey(0)也会为您提供按下的字符。
替换
getchar()
通过OPECV功能cvWaitKey(0)
。
零表示功能"永远"等待您按下按钮。它返回整数指示您按下的字符。
另请参见链接
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- 我在 OpenGL 中显示图像时遇到问题
- C++ 窗口显示无框图像
- 裁剪并显示我从哈尔级联获得的图像
- 如何显示具有 opengl 纹理的灰度图像
- 使用 Splashkit 逐个显示多个C++图像
- 如何使用OpenCV同时显示"深度"和"颜色"视频图像
- 如何从amd gpus的显示输出中获取图像数据
- Qt-png图像未显示在部署应用程序中
- 无法在 Opencv 中显示图像导致内存位置
- 只有左侧图像显示在OpenGL Stereo上
- gstreamer 管道代码,用于通过来自相机的实时流式传输而不是图像显示文本
- wxnotebook动态图像显示
- OpenCV-关闭图像显示窗口
- Qt拖放-改变图像显示,而拖动
- 为什么从Project Tango Tablet中提取的图像显示为灰色
- 如果同时运行两次wkhtmltopdf库,为什么它只会发生数据文档,而没有任何表或图像显示在html文件中
- 如何在win32中刷新图像显示白色,保持文字不变