マスク画像の作成
今回は,得られた座標を直線で結ぶという作業をOpenCVを用いて行ってみようと思います.
ただ,座標を直線で結んで多角形を作成するのも良いですが,今回は,作成後,いろいろと遊ぶことのできるマスク画像を作成します.
ここでは,マスク画像の詳細は省きますが,マスク画像は二値画像です.
10行目から13行目が得られた座標です.この座標を直線で結び,その内部を白く塗りつぶしています.
そしてtest.jpgは以下のようになります.
10行目から13行目の部分をtxtファイルから読み込みたいというときは,
FILE *fp; cv::Point pt[4]; int i;
などど宣言してから
fp = fopen("test.txt", "r"); if(fp == NULL){ printf("ファイルがありません\n"); return -1; } for(i = 0; i < 4; i++){ int x, y; fscanf(fp, " %d %d", &x, &y); pt[i] = cv::Point(x, y); } fclose(fp);
と書き換えます.
この書き換えの場合は
100 100 100 200 …
と座標を空白で区切ってある場合に使うことができます.