OpenCVSharp學習筆記-基本繪圖指令


前段時間的工作流開發告一段落,現在總算有點閑,可以搞搞別的東西。

我們經理給我介紹了OpenCV這個東東,但是C++好多年沒寫了,而且安裝配置非常麻煩。不過幸虧有.net版本,於是拿來玩玩,希望能給我們的平台添磚加瓦。

就從最基本的圖形繪制開始吧。

        private IplImage drawImage;

        private CvScalar color;

        private int lineThickness;

        public Form1()
        {
            InitializeComponent();
            //先搞一個空白的圖片,作為畫布
            drawImage = new IplImage(new CvSize(640, 480), BitDepth.F32, 3);
            //定義一個顏色,那就綠色的吧。
            color = new CvScalar(0, 255, 0);
            //線條的寬度
            lineThickness = 2;
        }

        /// <summary>
        /// 基本圖形繪制
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Click(object sender, EventArgs e)
        {
            switch (comboBox1.Text)
            {
                case "線段":
                    int y = drawImage.Size.Height;
                    int x = drawImage.Size.Width;
                    //定義2個點
                    CvPoint topLeft = new CvPoint(0, 0);
                    CvPoint bottomRight = new CvPoint(x, y);
                    //划線
                    drawImage.Line(topLeft, bottomRight, color, lineThickness);
                    break;
                case "矩形":
                    y = drawImage.Size.Height;
                    x = drawImage.Size.Width;
                    //矩形的左上角
                    topLeft = new CvPoint(x / 3, y / 3);
                    //矩形的大小
                    CvSize size = new CvSize(x / 3, y / 3);
                    //先構造一個矩形
                    CvRect rect = new CvRect(topLeft, size);
                    //把矩形畫出來
                    drawImage.Rectangle(rect, color, lineThickness);
                    break;
                case "圓形":
                    //圓心
                    CvPoint center = new CvPoint(drawImage.Size.Width / 2, drawImage.Size.Height / 2);
                    //半徑
                    int r = 50;
                    drawImage.Circle(center, r, color, 2);
                    break;
                case "多邊形":
                    //設置多邊形的頂點
                    CvPoint[] curve1 = new CvPoint[] { new CvPoint(10, 10), new CvPoint(10, 100), new CvPoint(100, 100), new CvPoint(200, 66), new CvPoint(100, 10) };
                    CvPoint[] curve2 = new CvPoint[] { new CvPoint(0, 0) };
                    CvPoint[][] curveArr = new CvPoint[2][] { curve1, curve2 };
                    //把多邊形畫出來,true表示封閉
                    drawImage.PolyLine(curveArr, true, color, lineThickness);
                    break;
                default:
                    break;
            }
            //把畫好的圖顯示出來
            pictureBoxIpl1.ImageIpl = drawImage;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM