私は灰色に変換したビデオキャプチャに矩形を描きたい。ビデオキャプチャをgracaleにして、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;
}
、私は長方形の8を描くように成功するが、ビデオはグレースケールではありません。 imshowを並べ替えると(最初にビデオをグレーにしてから矩形を描くと)、グレースケールのビデオが作成されますが、矩形は表示されません。
だから私は何をすると思いますか? 私はopen cvを使うのが新しいです。 私はビジュアルスタジオでopen cv 3.1.0とC++を使用しています。2015 ありがとうございました。