5、opencv中的绘图函数

1、目标

a、学习使用 OpenCV 绘制不同几何图形

b、 你将会学习到这些函数: cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse(),cv2.putText() 等。

2、代码

上面所有的这些绘图函数需要设置下面这些参数:

img:你想要绘制图形的那幅图像。

color: 形状的颜色。 以 RGB 为例, 需要传入一个元组, 例如: (255,0,0)代表蓝色。对于灰度图只需要传入灰度值。

thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形就会被填充。默认值是 1.

linetype: 线条的类型, 8 连接, 抗锯齿等。 默认情况是 8 连接。 cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。

1、画线

要画一条线,你只需要告诉函数这条线的起点和终点。我们下面会画一条从左上方到右下角的蓝色线段。

2、画矩形

要画一个矩形,你需要告诉函数的左上角顶点和右下角顶点的坐标。这次我们会在图像的右上角话一个绿色的矩形。

3、画圆

要画圆的话,只需要指定圆形的中心点坐标和半径大小。我们在上面的矩形中画一个圆。

4、画椭圆

画椭圆比较复杂,我们要多输入几个参数。一个参数是中心点的位置坐标。下一个参数是长轴和短轴的长度。椭圆沿逆时针方向旋转的角度。椭圆弧演
顺时针方向起始的角度和结束角度,如果是 0 很 360,就是整个椭圆。查看cv2.ellipse() 可以得到更多信息。下面的例子是在图片的中心绘制半个椭圆

5、画多边形

画多边形,需要指点每个顶点的坐标。用这些点的坐标构建一个大小等于行数 X1X2 的数组,行数就是点的数目。这个数组的数据类型必须为 int32。
这里画一个黄色的具有四个顶点的多边形。

6、在图片上添加文字

要在图片上绘制文字,你需要设置下列参数:
? 你要绘制的文字
? 你要绘制的位置
? 字体类型(通过查看 cv2.putText() 的文档找到支持的字体)
? 字体的大小
? 文字的一般属性如颜色,粗细,线条的类型等。为了更好看一点推荐使用
linetype=cv2.LINE_AA。
在图像上绘制白色的 OpenCV。

时间: 2024-08-05 19:31:10

5、opencv中的绘图函数的相关文章

OpenCV中的绘图函数

OpenCV可以用来绘制不同的集合图形,包括直线,矩形,圆,椭圆,多边形以及在图片上添加文字.用到的绘图函数包括 cv2.line(),cv2.circle(),cv2.rectangle() ,cv2.putText() 等等. 这些绘图函数需要设置参数如: ? img:你想要绘制图形的那幅图像.? color:形状的颜色.以 RGB 为例,需要传入一个元组,例如: (255,0,0 )代表蓝色.对于灰度图只需要传入灰度值.? thickness:线条的粗细.如果给一个闭合图形设置为 -1,那

openCV中的findHomography函数分析以及RANSAC算法的详解

本文将openCV中的RANSAC代码全部挑选出来,进行分析和讲解,以便大家更好的理解RANSAC算法.代码我都试过,可以直接运行. 在计算机视觉和图像处理等很多领域,都需要用到RANSAC算法.openCV中也有封装好的RANSAC算法,以便于人们使用.关于RANSAC算法的一些应用,可以看我的另一篇博客: 利用SIFT和RANSAC算法(openCV框架)实现物体的检测与定位,并求出变换矩阵(findFundamentalMat和findHomography的比较) 但是前几天师弟在使用op

OpenCV的基本绘图函数

相关函数介绍 [-] 相关函数介绍 Point Scalar Rectangle Line Ellipse PolyLine PutText 示例代码 实验结果 1. Point 该数据结构表示了由其图像坐标 和 指定的2D点.可定义为: Point pt; pt.x = 10; pt.y = 8; 或者 Point pt = Point(10, 8); Scalar 表示了具有4个元素的数组.次类型在OpenCV中被大量用于传递像素值. 本节中,我们将进一步用它来表示RGB颜色值(三个参数).

OpenCV中的新函数connectedComponentsWithStats使用

主要内容:对比新旧函数,用于过滤原始图像中轮廓分析后较小的区域,留下较大区域. 关键字    :connectedComponentsWithStats 在以前,常用的方法是"是先调用 cv::findContours() 函数(传入cv::RETR_CCOMP 标志),随后在得到的连通区域上循环调用 cv::drawContours() " 比如,我在GOCVHelper中这样进行了实现 //寻找最大的轮廓 VP FindBigestContour(Mat src){ int ima

【计算机视觉】OpenCV中直方图处理函数简述

计算直方图calcHist 直方图是对数据集合的统计 ,并将统计结果分布于一系列预定义的bins中.这里的数据不仅仅指的是灰度值 ,统计数据可能是任何能有效描述图像的特征. 假设有一个矩阵包含一张图像的信息 (灰度值 0-255): gray 既然已知数字的范围包含256个值, 我们可以将这个范围分割成子区域(称作 bins),如: bins 然后再统计掉入每一个bin_{i}的像素数目.采用这一方法来统计上面的数字矩阵,我们可以得到下图( x轴表示 bin, y轴表示各个bin中的像素个数).

绘图与可视化--pandas中的绘图函数

matplotlib是一种比较低级的工具,要组装一张图表,你得用它得各种基础组件才行:数据展示(即图表类型:线型图.柱状图.盒型图.散布图.等值线图等).图例.标题.刻度标签以及其它注释型信息. 在pandas中,有行标签.列标签及分组信息,要绘制一张图,需要很多matplotlib代码.pandas有很多能够利用DataFrame对象数据组织特点来创建标准图表的高级绘图方法. 1.1 线型图 Series和DataFrame都有一个用于生成各类图表的plot方法,默认情况下,生成的是线型图.

OpenCV中使用cvResize函数或resize函数进行图象放缩

//cvResize函数原型void cvResize( const CvArr* src, CvArr* dst, int interpolation=CV_INTER_LINEAR ); src:输入图像.(IplImage) dst:输出图像.(IplImage) interpolation:差值方法: CV_INTER_NN - 最近邻差值 CV_INTER_LINEAR - 双线性差值 (缺省使用) CV_INTER_AREA - 使用象素关系重采样.当图像缩小时候,该方法可以避免波纹

OpenCV中的常用函数

1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序暂停,等待用户触发一个按键操作: 5.cvReleaseImage:释放图像文件所分配的内存: 6.cvDestroyWindow:销毁显示图像文件的窗口: 7.cvCreateFileCapture:通过参数设置确定要读入的AVI文件: 8.cvQueryFrame:用来将下一帧视频文件载入内存:

(转)OpenCV中的常用函数

1.cvLoadImage:将图像文件加载至内存: 2.cvNamedWindow:在屏幕上创建一个窗口: 3.cvShowImage:在一个已创建好的窗口中显示图像: 4.cvWaitKey:使程序暂停,等待用户触发一个按键操作: 5.cvReleaseImage:释放图像文件所分配的内存: 6.cvDestroyWindow:销毁显示图像文件的窗口: 7.cvCreateFileCapture:通过参数设置确定要读入的AVI文件: 8.cvQueryFrame:用来将下一帧视频文件载入内存: