Matの初期化

よく忘れる
cv::Mat unk = (cv::Mat_<double>(3,3))<< 1, 2, 3, 1, 5, 6);

領域抽出cv::findContoursについて

http://opencv.jp/opencv-2svn/cpp/structural_analys...

領域抽出をしてくれる便利な関数
std::vector<std::vector<cv::Point> > contours;
cv::vector<cv::Vec4i> hierarchy;
cv::findContours(image, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_NONE,
  cv::Point(0, 0));

で、hierarchyは見つけた輪郭ごとに、その輪郭が他の輪郭の内部かどうかなどの情報を持っていて、
「前、後ろ、子、親」みたいになってる。

出力例(入力、輪郭、hierarchy)

モルフォロジー演算

照明むらの影響を抑える。
cv::Mat img, mor;
cv::Mat element = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(5, 5));
cv::morphologyEx(img, mor, cv::MORPH_BLACKHAT, element, cv::Point(-1, -1), 3);
cv::threshold(mor, mor, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

参考
http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada...

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます