前提・実現したいこと
opencVのC++で背景画像を削除して、人物だけを画面に写し,出力するプログラムを作りたいです。
輪郭を抽出するのにグレースケール化し、二値化してから、マスクを作成し背景を削除すればできるのではないかと考えていますが、ソースコードがわからず詰んでいる状態です。
なので、二値化処理後の「マスクを作成し背景を削除する」部分のプログラムをC++で教えていただきたいです。
該当のソースコード
c++
1int main(void) 2{ 3 string image_file_name; 4 5 //読み込む画像ファイル 6 image_file_name = "sample.jpg"; 7//グレースケールと二値化処理 8Mat input_img = imread("sample.png", IMREAD_UNCHANGED); 9Mat gray_img; //グレースケール画像を入れておくためのMat 10Mat bin_img; //2値画像を入れておくためのMat 11cvtColor(input_img, gray_img, CV_BGR2GRAY); //グレースケールに変換 12threshold(gray_img,bin_img,160,255,THRESH_BINARY); //閾値160で2値画像に変換 13threshold(gray_img, bin_img, 0, 255, THRESH_BINARY | THRESH_OTSU); //閾値を自動で設定 14 15以下不明...
試したこと
この記事を参考にしてやって見たんですが、言語がPythonなのでチンプンカンプンでした。
https://qiita.com/AtomJamesScott/items/ccef87b1092d7407de0d
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー