7

OpenCV サンプル ファイルの色検出サンプルの出力に対して、すべての交点で定義された点を持つユーザー定義のグリッド ラインを描画することは可能ですか? 基本的に、ウェブカメラはあなたの上から人間の頭と肩を検出する必要があります. 次に、人が検出されたら、x 軸と y 軸 (額と後頭部)。その後、アクチュエータやバルブなどの機械部品を操作するために、これらのポイントを送信する必要があります。

私は初心者レベルの OpenCV ユーザーで、C++ の操作に関する初心者の知識しかありません。現在、VS2008 で OpenCV 2.1 を使用しています。

4

2 に答える 2

6

あなたの問題が本当に何であるかを伝えるのは難しいです。

gridlines を描画したいだけの場合、それを行う opencv 関数はありません。グリッドに線をプロットするには、 in ループを使用cv::lineしてから、ネストされたループで交点を描画します。

// assume that mat.type=CV_8UC3

dist=50;

int width=mat.size().width;
int height=mat.size().height;

for(int i=0;i<height;i+=dist)
  cv::line(mat,Point(0,i),Point(width,i),cv::Scalar(255,255,255));

for(int i=0;i<width;i+=dist)
  cv::line(mat,Point(i,0),Point(i,height),cv::Scalar(255,255,255));

for(int i=0;i<width;i+=dist)
  for(int j=0;j<height;j+=dist)
    mat.at<cv::Vec3b>(i,j)=cv::Scalar(10,10,10); 
于 2012-11-29T16:16:25.260 に答える
0

OpenCV ライン関数を使用して画像上にグリッドを描画する場合

Mat mat_img(image);
int stepSize = 65;

int width = mat_img.size().width;
int height = mat_img.size().height;

for (int i = 0; i<height; i += stepSize)
    cv::line(mat_img, Point(0, i), Point(width, i), cv::Scalar(0, 255, 255));

for (int i = 0; i<width; i += stepsSize)
    cv::line(mat_img, Point(i, 0), Point(i, height), cv::Scalar(255, 0, 255));
于 2015-11-06T08:24:09.260 に答える