-2
我想在我轉換爲灰色的視頻捕捉中繪製一個矩形。使用opencv將視頻捕獲設爲灰度並在其中繪製矩形?
這是我的代碼:
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
VideoCapture cap(0);
if (!cap.isOpened())
{
// print error msg
return -1;
}
namedWindow("gray", CV_WINDOW_AUTOSIZE);
int pointf[8][4] = {
{100,100 , 150,50},
{100,250 , 150,200},
{100,430 , 150,380},
{295,200 , 345,150},
{295,400 , 345,350},
{490,100 , 540,50},
{490,250 , 540,200},
{490,430 , 540,380}
};
int i;
int j;
Mat frame;
Mat gray;
for (;;)
{
cap >> frame;
cvtColor(frame, gray, CV_BGR2GRAY);
for (i = 0; i < 8; i++) {
rectangle(frame, Point(pointf[i][0],pointf[i][1]), Point(pointf[i][2], pointf[i][3]), Scalar(0, 0, 255), 3);
}
imshow("gray", gray);
imshow("gray",frame);
if (waitKey(30) >= 0)
break;
}
return 0;
}
在結果中,我成功繪製矩形八,但視頻並不是一個灰度。如果我對imshow進行重新排序(先製作視頻灰色,然後繪製矩形),則會以灰度製作視頻,但矩形未顯示。
那麼,我想要做什麼建議? 我是新的使用開放式的CV。 我在Visual Studio 2015中使用open cv 3.1.0和C++ 謝謝。