ふらふら Diary (仮)

興味のあることを適当に書いていく感じです

マスク画像の作成

今回は,得られた座標を直線で結ぶという作業をOpenCVを用いて行ってみようと思います.
ただ,座標を直線で結んで多角形を作成するのも良いですが,今回は,作成後,いろいろと遊ぶことのできるマスク画像を作成します.

ここでは,マスク画像の詳細は省きますが,マスク画像は二値画像です.


10行目から13行目が得られた座標です.この座標を直線で結び,その内部を白く塗りつぶしています.

そしてtest.jpgは以下のようになります.
f:id:jetarinA:20141228195921j:plain


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 … 

と座標を空白で区切ってある場合に使うことができます.