OpenCV - 長方形の境界 cv::boundingRect
2022-03-01 12:12:59
著者 スティーブン・ザイ ティエンバオ
著作権について 著作権は著者に帰属します。商業的な複製は著者に許可を得てください。非商業的な複製は出典を明記してください
機能プロトタイプ
cv::Rect boundingRect( InputArray array );
パラメータの説明
入力: InputArray 型の配列、入力グレイスケール画像または 2 次元点セット。
出力: Rect 型の矩形情報(矩形のサイズと位置を含む).
テストコード
#include <iostream>
#include <time.h>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
cv::Mat src = imread("test.png",0);
cv::Mat result = src.clone();
cv::Mat th1;
// Maximum inter-class difference method, also known as Otsu's algorithm
threshold(result, th1, 0, 255, THRESH_OTSU);
// Inverse the phase
th1 = 255 - th1;
// determine the contour of the connected area
std::vector<std::vector<cv::Point> > contours; // create contour container
std::vector<cv::Vec4i> hierarchy;
cv::findContours(th1, contours, hierarchy, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_NONE, cv::Point());
// Iterate over the outline to display the rectangular box
for (int i = 0; i < contours.size(); ++i)
{
cv::Rect rect = cv::boundingRect(cv::Mat(contours[i]));
cv::rectangle(result, rect, Scalar(255), 1);
}
imshow("original", src);
imshow("thresh", th1);
imshow("result", result);
waitKey(0);
return 0;
}
テスト結果
<図
図2 閾値マップ
<図
図3 接続領域の矩形ボックスの効果
もう一つ、同じく最小の囲み矩形を取得する関数minAreaRectがありますが、こちらは傾斜角度を指定したもので、後日取り上げます。
もしこの記事が役に立ったなら、「いいね!」で教えてくれたら嬉しいです〜!乾杯
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例