<small id='eG1u38OX'></small> <noframes id='oIzlOp'>

  • <tfoot id='XlukpILx'></tfoot>

      <legend id='KPTs4w'><style id='zYyAvfdmF6'><dir id='eGx80tVW'><q id='VDZmyi'></q></dir></style></legend>
      <i id='V76L'><tr id='yLRv'><dt id='mkhHQs1'><q id='CvV2NrDsj3'><span id='6JQIhs'><b id='MsohrVXRFC'><form id='fxpy'><ins id='lsHfSBgT'></ins><ul id='7OAXeifP6j'></ul><sub id='hSdbOa02P'></sub></form><legend id='nb4E'></legend><bdo id='3z4UWe9A'><pre id='vQhn'><center id='Ghqc'></center></pre></bdo></b><th id='Tzkp3'></th></span></q></dt></tr></i><div id='aqg5E36HZS'><tfoot id='3fIQzB'></tfoot><dl id='Bf42NDSgL'><fieldset id='5rJIb'></fieldset></dl></div>

          <bdo id='nTw9FSRBGp'></bdo><ul id='3Z6sU'></ul>

          1. <li id='Zi7Sm'></li>
            登陆

            1号站手机官网下载地址-【图画处理】OpenCV系列29 - line、circle、ellipse、rectangle

            admin 2019-05-18 323人围观 ,发现0个评论

            上一节咱们学习了如安在图画上制作一个带箭头的的直线,信任咱们学习之后,现已理解了,本节呢,咱们学习如安在图画上制作圆孔。

            一、制作直线line()函数详解

            1、函数原型

            void line(InputOutputArray img, 

            Point pt1,

            Point pt2,

            const Scalar& color,

            int thickness = 1,

            int lineType = LINE_8,

            int shift = 0);

            2、函数功用

            在图画上制作恣意的直线;

            31号站手机官网下载地址-【图画处理】OpenCV系列29 - line、circle、ellipse、rectangle、参数详解

            • 第一个参数,InputOutputArray img,要制作直线的图画;
            • 第二个参数,Point pt1,直线的起点;
            • 第三个参数,Point pt2,直线的结尾;
            • 第四个参数,const Scalar& color,制作直线的色彩;
            • 第五个参数,int thickness = 1,线段的粗细;
            • 第六个参数,int lineType = LINE_8,线段的类型;

            线的类型:

            FILLED,填充;

            LINE_4,4连通的线条;

            LINE_8 ,8连通的线条;

            LINE_AA ,抗锯齿线条;

            • 第七个参数,int shift = 0,点坐标中的小数位数;

            4、试验事例

            #include 
            #include

            using namespace cv;
            using namespace std;

            int main(int argc, char** argv)
            {
            // 创立一幅512 x 512的图画
            Mat src(512, 512, CV_8UC3);

            // 判别图画是否为空
            if (src.empty())
            {
            cout << "Image empty !\n";
            return 0;
            }

            namedWindow("原图");
            imshow("原图", src);

            // 制作直线
            line(src, Point(10, 10),
            Point(300, 300),
            Scalar(255, 0, 255), 3, 8);

            namedWindow("效果图");
            imshow("效果图", src);

            waitKey(0);
            1号站手机官网下载地址-【图画处理】OpenCV系列29 - line、circle、ellipse、rectanglereturn 0;
            }

            5、试验成果

            效果图


            二、制作圆circle()函数详解

            1、函数原型

            void circle(InputOutputArray img, 

            Point center,

            int radius,

            const Scalar& color,

            int thickness = 1,

            int lineType = LINE_8,

            int shift = 0);

            2、函数功用

            在图画上制作恣意的圆;

            3、参数详解

            • 第一个参数,InputOutputArray img,要制作圆孔的图画;
            • 第1号站手机官网下载地址-【图画处理】OpenCV系列29 - line、circle、ellipse、rectangle二个参数,Point center,圆孔的中心点;
            • 第三个参数,int radius,圆孔的半径;
            • 第四个参数,const Scalar& color,制作圆孔线的色彩;
            • 第五个参数,int thickness = 1,线段的粗细;
            • 第六个参数,int lineType = LINE_8,线段的类型;

            线的类型:

            FILLED,填充;

            LINE_4,4连通的线条;

            LINE_8 ,8连通的线条;

            LINE_AA ,抗锯齿线条;

            • 第七个参数,int shift = 0,点坐标中的小数位数;

            4、试验事例

            #include 
            #include

            using namespace cv;
            using namespace std;

            int main(int argc, char** argv)
            {
            // 创立一幅256 x 256的图画
            Mat src(256, 256, CV_8UC3);

            // 判别图画是否为空
            if (src.empty())
            {
            cout << "Image empty !\n";
            return 0;
            }

            namedWindow("原图");
            imshow("原图", src);

            // 制作圆孔
            circle(src, Point(128, 128),
            50,
            Scalar(255, 0, 255), 3, 8);

            namedWindow("效果图");
            imshow("效果图", src);

            waitKey(0);
            return 0;
            }

            5、试验成果

            效果图


            三、制作椭圆ellipse()函数详解

            1、函数原型

            void ellipse(InputOutputArray img, 

            const Rotate汪氏鸽经dRect& box,

            const Scalar& color,

            int thickness = 1,

            int lineType = LINE_8);

            void ellipse(InputOutputArray img,

            Point center,

            Size axes,

            double angle,

            double startAngle,

            double endAngle,

            const Scalar& color,

            int thickness = 1,

            int lineType = LINE_8,

            int shift = 0);

            2、函数功用

            在图画上制作恣意的椭圆;

            函数ellipse具有更多的参数,制作椭圆概括、填充椭圆、椭圆弧或填充椭圆扇区;

            选用分段线性曲线迫临椭圆圆弧鸿沟;假如您需求更多的操控椭圆烘托,您能够重构曲线运用ellipse2Poly,然后用polylines烘托或着用fillPoly填充;

            假如您运用该函数的第二个变体,而且期望制作整个椭圆,而不是一个弧线,则能够传递start视点=0和endanges=360;

            假如开端角大于端角,则交流它们。下图解说了制作蓝色弧的参数的意义:

            椭圆弧参数


            3、参数详解

            • 第一个参数,InputOutputArray img,要制作椭圆的图画;
            • 第二个参数,const RotatedRect& box,经过RotatedRect挑选椭圆表明,这意味着函数在旋转矩形中画一个椭圆;
            • 第三个参数,Point center,椭圆的中心点;
            • 第四个参数,Size axes,椭圆主轴尺度的一半;
            • 第五个参数,double angle,椭圆旋转角,以度为单位;
            • 第六个参数,double startAngle,椭圆弧的开端角,以度为单位;
            • 第七个参数,double endAngle,椭圆弧的完毕角,以度为单位;
            • 第八个参数,const Scalar& color,制作椭圆线的色彩;
            • 第九个参数,int thickness = 1,线段的粗细;
            • 第十个参数,int lineType = LINE_8,线段的类型;

            线的类型:

            FILLED,填充;

            LINE_4,4连通的线条;

            LINE_8 ,8连通的线条;

            LINE_AA ,抗锯齿线条;

            • 第十一个参数,int shift = 0,中心坐标中的小数位数和轴的值;

            4、试验事例

            #include 
            #include

            using namespace cv;
            using namespace std;

            static Scalar randomColor(RNG& rng)
            {
            int icolor = (unsigned)rng;
            return Scalar(icolor & 255,
            (icolor >> 8) & 255,
            (icolor >> 16) & 255);
            }

            int main(int argc, char** argv)
            {
            const int window_width = 512;
            const int window_height = 512;

            int x_1 = -window_width / 2;
            int x_2 = window_width * 3 / 2;
            int y_1 = -window_width / 2;
            int y_2 = window_width * 3 / 2;

            // 创立一幅256 x 256的图画
            Mat src(window_height, window_width, CV_8UC3);
            char window_name[] = "ellipse";

            RNG rng(0xFFFFFFFF);

            // 判别图画是否为空
            if (src.empty())
            {
            cout << "Image empty !\n";
            return 0;
            }

            namedWindow("原图");
            imshow("原图", src);

            for (int i = 0; i < 100; i++)
            {
            Point center;
            center.x = rng.uniform(x_1, x_2);
            center.y = rng.uniform(y_1, y_2);

            Size axes;
            axes.width = rng.uniform(0, 200);
            axes.height = rng.uniform(0, 200);

            double angle = rng.uniform(0, 180);

            ellipse(src, center, axes,
            angle, angle - 100, angle + 200,
            randomColor(rng), rng.uniform(-1, 9), 8);

            imshow(window_name, src);
            waitKey(100);
            }

            waitKey(0);
            return 0;
            }

            5、试验成果

            效果图


            四、制作矩形rectangle()函数详解

            1、函数原型

            void rectangle(InputOutputArray img, 

            Point pt1,

            Point pt2,

            const Scalar& color,

            int thickness = 1,

            int lineType = LINE_8,

            int shift = 0);

            void rectangle(InputOutputArray img,

            Rect rect,

            const Scalar& color,

            int thickness = 1,

            int lineType = LINE_8,

            int shift = 0);

            2、函数功用

            在图画上制作恣意的矩形;

            3、参数详解

            • 第一个参数,InputOutputArray img,要制作矩形的图画;
            • 第二个参数,Rect rect,制作的矩形;
            • 第三个参数,Point pt1,矩形的左上点;
            • 第四个参数,Point pt2,矩形的右下点;
            • 第五个参数,const Scalar& color,制作矩形线的色彩;
            • 第六个参数,int thickness = 1,线段的粗细;
            • 第七个参数,int lineType = LINE_8,线段的类型;

            线的类型:

            FILLED,填充;

            LINE_4,4连通的线条;

            LINE_8 ,8连通的线条;

            LINE_AA ,抗锯齿线条;

            • 第八个参数,int shift = 0,点坐标中的小数位数;

            4、试验事例

            #include 
            #include

            using namespace cv;
            using namespace std;

            int main(int argc, char** argv)
            {
            // 创立一幅256 x 256的图画
            Mat src(256, 256, CV_8UC3);

            // 判别图画是否为空
            if (src.empty())
            {
            cout << "Image empty !\n";
            return 0;
            }

            namedWindow("原图");
            imshow("原图", src);

            // 制作矩形
            rectangle(src, Point(128, 128),
            Point(200, 200),
            Scalar(255, 0, 255), 3, 8);

            Rect rect = Rect(Point(50, 50), Point(100, 100));

            rectangle(src, rect,
            Scalar(255, 0, 255), 3, 8);

            namedWindow("效果图");
            imshow("效果图", src);

            waitKey(0);
            return 0;
            }

            5、试验成果

            效果图


            我是奕双,现在现已结业将近两年了,从大学开端学编程,期间学习了C言语编程,C++言语编程,Win32编程,MFC编程,结业之后进入一家图画处理相关范畴的公司,把握了用OpenCV对图画进行处理,假如咱们对相关范畴感兴趣的话,能够重视我,我这边会为咱们进行回答哦!假如咱们需求相关学习材料的话,能够私聊我哦!

          2. 2019年第四次暂时股东大会决议布告
          3. 请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP