OpenCV-Python学习
文章平均质量分 83
OpenCV-Python学习笔记!
Rattenking
迎接着黎明的曙光前行!
展开
-
OpenCV-Python实战(7) —— OpenCV 实现抖音视频倒放效果
OpenCV 实现视频倒放,原理就是读取视频,获取每一帧的图像,倒转帧的顺序,存入新的视频;明白其中的实现,还可以实现视频中间部分倒放、视频部分图像放大抖动等特效。原创 2023-05-09 20:20:19 · 838 阅读 · 0 评论 -
OpenCV-Python实战(8) —— OpenCV 实现批量将 bmp、png、jpg格式图片转换为 png 格式图片
OpenCV-Python实战(8) —— OpenCV 实现批量将 bmp、png、jpg格式图片转换为 png 格式图片。原创 2023-03-28 10:30:00 · 1327 阅读 · 0 评论 -
OpenCV-Python学习(22)—— OpenCV 视频读取与保存处理(cv.VideoCapture、cv.VideoWriter)
视频写入类VideoWriter的参数frameSize是元组 (w, h),即视频帧的宽度和高度,而OpenCV图像的形状是 (h, w),注意二者的顺序相反;write 写入图片的宽高必须保持一直;使用摄像头时,index=0 表示默认后端打开默认摄像机,例如笔记本内置摄像头。原创 2023-03-05 21:21:52 · 2018 阅读 · 0 评论 -
OpenCV-Python学习(21)—— OpenCV 图像几何变换之图像翻转(cv.flip、np.flip)
注意:阵列的反转和OpenCV 的翻转对比,少了对角线翻转,但是使用【上下反转+左右反转】能够实现相同的效果;自己使用循环阵列的方法实现水平、垂直、对角线翻转,但是相比原生方法,计算很慢,需要进行优化!!!原创 2023-02-24 09:00:26 · 3468 阅读 · 0 评论 -
OpenCV-Python学习(20)—— OpenCV 图像几何变换之图像旋转(cv.warpAffine、cv.getRotationMatrix2D、cv.rotate、np.rot90)
cv.rotate 和 np.rot90 两个方法只能旋转特殊角度,只能是90度的整数倍数。cv.warpAffine 可以对图像进行任意角度旋转;实现自定原点旋转,需要借助 cv.getRotationMatrix2D 计算变化矩阵;cv.getRotationMatrix2D 的实现原理需要注意旋转角度对应的顺【逆】时针旋转!!!注意:cv.getRotationMatrix2D 的旋转角度【逆时针为正数,顺时针为负数!!原创 2023-02-12 10:30:00 · 6085 阅读 · 0 评论 -
OpenCV-Python学习(19)—— OpenCV 图像几何变换之图像缩放(cv.warpAffine、cv.resize)
变换缩放矩阵 M 是 np.float32 类型 ndarray 二维数组(2行*3列)。变换矩阵 M = np.float32([[1 * zx,0,0],[0,1 * zy,0]]),zx 表示 x 轴的缩放比例,zy 表示 y 轴的缩放比例。dsize 输出图像的大小格式为元组 (width, height)。图像缩放可以通过 dsize 直接设定输出图像的大小,也可以通过 dx, dy 设置图像缩放的比例(dsize 设为 None)。原创 2023-02-06 10:30:00 · 3478 阅读 · 0 评论 -
OpenCV-Python学习(18)—— OpenCV 图像几何变换之图像平移(cv.warpAffine)
变换矩阵 M 是 np.float32 类型 ndarray 二维数组(2行*3列)。变换矩阵 M = np.float32([[1,0,tx],[0,1,ty]]),tx 表示向右移动的像素值,ty 表示向下移动的像素值;注意:如果值是负数表示向相反方向移动的像素值。dsize 输出图像的大小格式为元组 (width, height)。原创 2023-01-31 10:28:56 · 2172 阅读 · 0 评论 -
OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)
归一化是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。理解归一化不同计算方式的过程。原创 2022-12-16 15:13:37 · 3405 阅读 · 0 评论 -
OpenCV-Python实战(6) —— OpenCV 五角星绘制
注意:五角星坐标点计算点的坐标系和opencv的坐标系不同,需要进行转换;注意:五角星绘制的时候需要对坐标的中心点进行移动到中心;旋转角度的计算时,需要注意np.arctan返回的是弧度,需要使用np.degrees转换为度;国旗绘制完成,去掉辅助线函数,得到一个完整的国旗图像;可以监听cv.waitKey(0) == ord(‘s’),进行图像的保存, cv.imwrite()。原创 2022-11-21 08:42:16 · 23 阅读 · 0 评论 -
OpenCV-Python学习(16)—— OpenCV 图像旋转角度计算(NumPy 三角函数)
numpy.deg2rad(x) 等于 x * pi / 180;numpy.radians(x) 等于 x * pi / 180;三角函数的输入值是弧度,因此在求一个角的三角函数是,必须将度转换为弧度;反三角函数的返回值是弧度,因此要得到反三角函数的角度,必须将弧度转换为度。原创 2022-11-19 09:30:00 · 1725 阅读 · 0 评论 -
OpenCV-Python实战(5) —— OpenCV 使用cv.setMouseCallback实现截图功能
由于没有对截图时超出图片坐标的处理,因此测试时,请常规操作,在图片内截图;原创 2022-11-17 10:00:00 · 699 阅读 · 2 评论 -
OpenCV-Python学习(15)—— OpenCV 鼠标操作和响应(cv.setMouseCallback)
创建一个500*500的白色背景图片;复制一个一样大小的白色背景图;创建一个窗口,监听这个窗口的鼠标事件;鼠标回调函数,绘制矩形;当前次鼠标左键开始坐标;开始后允许对移动中坐标进行记录;产生随机颜色;将上次绘制的结果给当前图片,为了将当前次移动过程中产生的绘制清除;当前次移动结束的坐标,绘制移动中的当前矩形;当前次坐标点绘制结束坐标点,结束鼠标移动监听;绘制当前次鼠标左键按下到放开起点和终点组成的矩形;保存当前次绘制的图片,坐标点还原;每10毫秒显示一次图片。原创 2022-11-15 10:56:01 · 3310 阅读 · 0 评论 -
OpenCV-Python学习(14)—— OpenCV 绘制箭头线(cv.arrowedLine)
【代码】OpenCV-Python学习(14)—— OpenCV 绘制箭头线(cv.arrowedLine)原创 2022-11-14 11:07:37 · 2280 阅读 · 0 评论 -
OpenCV-Python实战(4) —— OpenCV 五角星各点在坐标系上面的坐标计算(以重心为原点)
注意: AO⊥BE!假设 OA = r!原创 2022-11-04 09:06:29 · 2125 阅读 · 0 评论 -
OpenCV-Python学习(13)—— OpenCV 多边形填充与绘制(cv.fillPoly、cv.polylines)
由于计算五角星各点坐标时,采用的时数学的四象限坐标,以重心为原点,创建坐标;opencv 绘制图形时,x轴和数学坐标轴一样,但是y是以向下为正轴,同时坐标原点在图像的左上角[0,0]位置;通过以上两点,可以知道第一:需要将计算的y轴坐标取反;第二:需要将计算点的原点进行位移计算。原创 2022-11-03 15:17:19 · 4440 阅读 · 5 评论 -
OpenCV-Python学习(12)—— OpenCV 向图像添加文本(cv.putText、cv.getTextSize)
函数 cv.putText 的参数thickness不能为负数,负数报错;函数 cv.line 的参数thickness不能为负数,负数报错。原创 2022-10-28 10:00:00 · 2170 阅读 · 0 评论 -
OpenCV-Python实战(3) —— OpenCV的绘图功能实现【小游戏2048】
使用 numpy 模块将二维列表转一维列表;生成的随机数小于0.9返回2否则返回4。原创 2022-10-27 15:43:11 · 390 阅读 · 0 评论 -
OpenCV-Python实战(2) —— 使用OpenCV的绘图功能创建OpenCV的徽标
由于图像尺寸不大,所以采用的 lineType 是cv.LINE_AA,图标看着比较平滑;由于原图标的字体没找到,因此在 cv 提供的字体中找了一个比较接近的字体;椭圆的angle参数是可以控制圆弧的旋转的,因此缺口只需要设置不同旋转角度就好。原创 2022-10-27 10:00:00 · 581 阅读 · 0 评论 -
OpenCV-Python学习(11)—— OpenCV 图像几何形状绘制(cv.line、cv.circle、cv.rectangle、cv.ellipse)
绘制弧形使用椭圆绘制函数;填充图形使用thickness 的值为 -1;绘制图形不能超出图像,超出部分直接按照图像边缘截取;图像尺寸较小时,LINE_4 线型存在明显的锯齿,LINE_AA 线型更加平滑;图像尺寸较大时,则线型的影响并不大,推荐采用默认值 LINE_8。原创 2022-10-26 15:56:48 · 4684 阅读 · 0 评论 -
OpenCV-Python实战(1) —— 给图片添加图片水印【利用 OpenCV 像素的读写原理实现】
本篇文章是学习【图像像素读写操作】的实战实现;文章还差水印文字的实现,水印图片大小的改变实现,在后续文章中学到了依旧会使用到开发实例中;注意本文章都没有考虑图片的超出限制,如果是需要logo的部分等操作,需要另行操作;注意本文章没有使用cv的其他二值处理等函数处理水印,所以水印最好是透明背景的图片,或者是纯色背景,方便获取背景的像素值。原创 2022-10-21 14:03:44 · 1492 阅读 · 1 评论 -
OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)
函数只有 type 为cv.THRESH_BINARY 或 cv.THRESH_BINARY_INV时输出为二值图像,其它变换类型时进行阈值处理但并不是二值处理。函数是进行固定阈值的二值化处理。原创 2022-10-20 17:22:42 · 6173 阅读 · 1 评论 -
OpenCV-Python学习(9)—— OpenCV 通道的分离与合并(cv.split、cv.merge、cv.mixChannels、cv.inRange)
对于 openCV 使用的BGR 格式图像,返回的分拆通道的次序为 B、G、R 通道。BGR 彩色图像的数据形状为 (width, height, channels=3),返回的 B/G/R 通道的数据形状为 (width, height),不能按照 BGR 彩色图像直接显示。如果直接用 imshow 显示返回的单通道对象,将被视为 (width, height) 形状的灰度图像显示。原创 2022-10-18 16:13:48 · 2937 阅读 · 0 评论 -
OpenCV-Python学习(8)—— OpenCV 颜色表操作(cv.LUT、cv.applyColorMap)
自定义一个取反查找表;使用取反查找表读取图片显示;虽然手动遍历可以达到同样效果,但尽量使用 OpenCV 内置函数。调用LUT 函数可以获得最快的速度,这是因为OpenCV库可以通过英特尔线程架构启用多线程;学会cv.LUT()的使用,cv.LUT()自定义查找表的时候使用的函数;学会的使用,**cv.applyColorMap()**使用系统查找表的时候使用的函数。原创 2022-10-17 10:24:28 · 2171 阅读 · 3 评论 -
OpenCV-Python学习(7)—— OpenCV 轨迹栏操作和键盘响应操作(cv.createTrackbar、cv.getTrackbarPos、cv.waitKey)
的回调是必填参数,不填写会报错;获取对应窗口中对应轨迹栏的当前值;用于在指定的窗口中显示图像;表示阻塞指定毫秒数。如果0或者不填写表示一直阻塞!原创 2022-10-11 17:07:38 · 1313 阅读 · 0 评论 -
OpenCV-Python学习(6)—— OpenCV 图像算术操作(cv.add、cv.subtract、cv.multiply、cv.divide)
OpenCV和Numpy的加法运算不同,OpenCV的加法运算是饱和运算,而Numpy的加法运算是模运算。饱和运算最大的特点是不讲究溢出位,执行结果与底层关系不大;假设变量的类型是8位无符号整型,那么最大数是255,如果在数学上相加的结果大于255,那么饱和运算返回结果就是255。模运算考虑溢出位,执行结果需要向计算机底层原理——二进制的方面思考;原创 2022-10-11 09:57:53 · 1631 阅读 · 0 评论 -
OpenCV-Python学习(5)—— OpenCV 图像像素的读写操作
图像维度信息:image.shape;访问图像像素:image[row,col];图像赋值像素:image[row,col] = xxx;OpenCV 像素遍历的本质就是numpy数组访问!!!原创 2022-10-08 11:11:32 · 1378 阅读 · 0 评论 -
OpenCV-Python学习(4)—— OpenCV 图像对象的创建与赋值(numpy.zeros、numpy.zeros_like、numpy.ones)
在中一切图像数据皆 numpy.array;创建图像就是创建 numpy.array;OpenCV-Python 支持的常用数据类型:np.uint8、np.float32、np.int32、np.int64。原创 2022-09-30 16:20:12 · 2688 阅读 · 2 评论 -
OpenCV-Python学习(3)—— OpenCV 图像色彩空间转换(cv.cvtColor)
从一个色彩空间转换到另一个色彩空间,信息传递会损失;从一个色彩空间转换到另一个色彩空间,过程可逆与不可逆。HSV的色相范围为[0,179],饱和度范围为[0,255],值范围为[0,255]。OpenCV中有超过150种颜色空间转换方法。最广泛使用的是BGR↔灰色和BGR↔HSV。不同的软件使用不同的规模。如果你要将OpenCV值和它们比较,你需要将这些范围标准化。原创 2022-09-30 09:37:52 · 3133 阅读 · 0 评论 -
OpenCV-Python学习(1)—— OpenCV历史与安装
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。[1] 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。原创 2022-09-29 10:37:00 · 1901 阅读 · 0 评论 -
OpenCV-Python学习(2)—— OpenCV 图像的读取、显示和保存(cv.imread、cv.imshow、cv.imwrite)
cv.destroyAllWindows()只会破坏我们创建的所有窗口。如果要销毁任何特定的窗口,请使用函。数 cv.destroyWindow()在其中传递确切的窗口名称作为参数。原创 2022-09-29 15:16:05 · 3244 阅读 · 1 评论