我正在尝试制作一个简单的程序,在来自我的网络摄像头的视频流上绘制一个矩形。以下代码编译并运行,但矩形不可见。我尝试了各种线条厚度,颜色和位置;并尝试将矩形简单地放在图像而不是视频流上。
在查看了示例和教程以及OpenCV文档后,我仍然无法弄明白。如果有人可以协助我使矩形可见,那将非常感激。
#include <opencv2/video.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
VideoCapture vid(0);
Mat frame;
int main()
{
while(true)
{
vid.read(frame);
imshow("Webcam", frame);
rectangle(frame, Point(100, 100), Point(300, 300), Scalar(255), 10, 8, 0);
if (waitKey(30) == 27)
break;
}
}
答案 0 :(得分:1)
只需在之前绘制矩形,即可显示图像:
#include <opencv2\opencv.hpp> // It's just easier to #include only this
using namespace cv;
int main() {
// Don't use global variables if they are not needed!
VideoCapture vid(0);
Mat frame;
while(true)
{
// Read frame
vid.read(frame);
// Draw rectangle
rectangle(frame, Point(100, 100), Point(300, 300), Scalar(255, 0, 0) /*blue*/, 10, 8, 0);
// Show image
imshow("Webcam", frame);
if ((waitKey(30) & 0xFF) == 27) { // for portability
break;
}
}
}