您的当前位置:首页正文

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;
        }

转载于:https://www.cnblogs.com/rone/archive/2012/04/01/2429126.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Top