私はopenCvSharpが初めてで、vs nugetプラグインからOpenCvSharp 3を学んでいます。線も円もOKで描けました。しかし、ポリライン/fillPoly関数の描画に問題があります。呼び出しパラメーターの 1 つが心配タイプです。rook_point 配列だと思います。配列を無駄に渡すために他のバージョン(定義)を試しました。
私は切り株です。助けていただけるなら...返信してください。
ありがとう、キング
using OpenCvSharp;
class Program
{
static void Main()
{
// Create black empty images
Mat src = Mat.Zeros(400, 400, MatType.CV_8UC3);
int w = 400;
/* Create some points */
Point[] rook_points = new Point[20];
rook_points[0] = new Point(w / 4.0, 7 * w / 8.0);
rook_points[1] = new Point(3 * w / 4.0, 7 * w / 8.0);
rook_points[2] = new Point(3 * w / 4.0, 13 * w / 16.0);
rook_points[3] = new Point(11 * w / 16.0, 13 * w / 16.0);
rook_points[4] = new Point(19 * w / 32.0, 3 * w / 8.0);
rook_points[5] = new Point(3 * w / 4.0, 3 * w / 8.0);
rook_points[6] = new Point(3 * w / 4.0, w / 8.0);
rook_points[7] = new Point(26 * w / 40.0, w / 8.0);
rook_points[8] = new Point(26 * w / 40.0, w / 4.0);
rook_points[9] = new Point(22 * w / 40.0, w / 4.0);
rook_points[10] = new Point(22 * w / 40.0, w / 8.0);
rook_points[11] = new Point(18 * w / 40.0, w / 8.0);
rook_points[12] = new Point(18 * w / 40.0, w / 4.0);
rook_points[13] = new Point(14 * w / 40.0, w / 4.0);
rook_points[14] = new Point(14 * w / 40.0, w / 8.0);
rook_points[15] = new Point(w / 4.0, w / 8.0);
rook_points[16] = new Point(w / 4.0, 3 * w / 8.0);
rook_points[17] = new Point(13 * w / 32.0, 3 * w / 8.0);
rook_points[18] = new Point(5 * w / 16.0, 13 * w / 16.0);
rook_points[19] = new Point(w / 4.0, 13 * w / 16.0);
Cv2.FillPoly(src, rook_points, true, new Scalar(255, 255, 55)); // invalid parameter
using (new Window("Image", src))
Cv2.WaitKey(0);
}
}