以下の画像について、物体の輪郭を求め、赤色の線で描画しました。
この時の、上側の赤い斜めの線の傾き(角度)を求めるために、斜め部分の座標を2点取得し、(例えば、座標(120,上側の赤色の線上)と座標(150、上側の赤色の線上)の赤色の線上のy座標を求める。)角度を求めようと考えていますが、プログラムがわかりません。
プログラミング、C#の経験が初心者のため、サンプルプログラムを教えていただけると助かります。
以下、記述したコードを抜粋しました。
よろしくお願いします。
OpenCvSharp.Point[][] contours;
HierarchyIndex[] hierarchyIndexes;
dst.FindContours(
out contours, out hierarchyIndexes, RetrievalModes.External, ContourApproximationModes.ApproxNone);
//親輪郭を構成する点を全て集める var points = new List<OpenCvSharp.Point>(); for (int idx_cnt = 0; idx_cnt < contours.GetLength(0); ++idx_cnt) { if (hierarchyIndexes[idx_cnt].Parent != -1) { continue; } points.AddRange(contours[idx_cnt]); } //凸包を求めて赤色で描画する mat.Polylines(new OpenCvSharp.Point[1][] { Cv2.ConvexHull(points.ToArray()) }, isClosed: false, new Scalar(0, 0, 255), 1,LineTypes.AntiAlias);
//赤色で描写した画像を表示する。
Cv2.ImWrite("image/枠.jpg", mat);
pictureBox1.ImageLocation = @"image/枠.jpg";
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。