前提
GitHub:https://github.com/wangchuan/RobustMatting
でこのマッティングを実装しようとしています。
試行錯誤をして、ビルドは通すことができたのですが、コマンドライン引数を指定するとエラーが発生してしまいます。
実現したいこと
この通りに実装できると、前景画像の切り抜きが可能になる。
発生している問題・エラーメッセージ
例外がスローされました:読み取りアクセス違反。 _sz が nullptr でした。
該当のソースコード
C++
1//robust_matting.cpp内でのエラー部分です。 2RobustMatting::RobustMatting(const cv::Mat& img, const cv::Mat& trimap) 3{ 4 img.convertTo(m_image, CV_32FC3); 5 m_trimap = trimap; 6 if (m_trimap.channels() > 1) 7 cvtColor(m_trimap, m_trimap, cv::COLOR_BGR2GRAY); 8 m_result = Mat(m_image.size(), CV_8UC1); 9} 10
コマンドライン引数の宣言部分
int main(int argc, char** argv) { if (argc != 4) { cout << "Usage: robust-matting.exe input.png trimap.png output.png" << endl; return -1; } string img_filename = argv[1]; string trimap_filename = argv[2]; string output_filename = argv[3]; Mat img = imread(img_filename, cv::IMREAD_COLOR);//CV_LOAD_IMAGE_COLOR is old Mat trimap = imread(trimap_filename, cv::ImreadModes::IMREAD_GRAYSCALE); RobustMatting rm(img, trimap); rm.Run();
補足情報(FW/ツールのバージョンなど)
本git内のopencvは古いため、環境によっては実装のためは一部分を改修する必要があります。
回答2件
あなたの回答
tips
プレビュー