
Opencv
计算机视觉库Opencv的使用方法。
Wanderer001
AR/VR软件与硬件技术:图像增强、图像分类、语义分割、目标检测、目标跟踪、风格迁移、强化学习、三维重建、SLAM
展开
-
OpenCV通道的分离和合并
import cv2# 读入图像img = cv2.imread("img.jpg")# 分离b, g, r = cv2.split(img) # 合并merged = cv2.merge([b, g, r])原创 2022-02-15 11:28:24 · 1493 阅读 · 0 评论 -
cv2.copyMakeBorder()
OpenCV-Python是旨在解决计算机视觉问题的Python绑定库。cv2.copyMakeBorder()方法用于在像相框一样的图像周围创建边框。用法: cv2.copyMakeBorder(src, top, bottom, left, right, borderType, value)参数:src:它是源图像。top:它是顶部方向上的像素数的边框宽度。bottom:它是底部方向上的像素数的边框宽度。left:它是左侧像素的边界宽度。right:它是沿正确方向的像素数的边框宽度。borde原创 2022-03-02 12:24:21 · 839 阅读 · 0 评论 -
opencv 里面各个字体的效果
cv2.FONT_HERSHEY_SIMPLEXcv2.FONT_HERSHEY_PLAINcv2.FONT_HERSHEY_DUPLEXFONT_HERSHEY_COMPLEXcv2.FONT_HERSHEY_TRIPLEXcv2.FONT_HERSHEY_COMPLEX_SMALLcv2.FONT_HERSHEY_SCRIPT_SIMPLEXcv2.FONT_HERSHEY_SCRIPT_COMPLEX原创 2022-03-02 12:24:56 · 4894 阅读 · 0 评论 -
Adversarial Semantic Hallucination for Domain Generalized Semantic Segmentation
获取车牌轮廓上的点集后,可用cv2.minAreaRect()获取点集的最小外接矩形。返回值rect内包含该矩形的中心点坐标、高度宽度及倾斜角度等信息,使用cv2.boxPoints()可获取该矩形的四个顶点坐标。# 获取最小外接矩阵,中心点坐标,宽高,旋转角度rect = cv2.minAreaRect(points)# 获取矩形四个顶点,浮点型box = cv2.boxPoints(rect)# 取整box = np.int0(box) 但我们并不清楚这四个坐标点各对应着...原创 2022-03-10 13:27:14 · 1558 阅读 · 3 评论 -
cv2.drawContours
1.1什么是轮廓轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。为了准确,要使用二值化图像。需要进行阀值化处理或者Canny边界检测。 查找轮廓的函数会修改原始图像。如果之后想继续使用原始图像,应该将原始图像储存到其他变量中。 在OpenCV中,查找轮廓就像在黑色背景中超白色物体。你应该记住,要找的物体应该是白色而背景应该是黑色。 如何在一个二值图像中查找轮廓。 函数cv2.findContours()有三个参数,第一个是原创 2022-03-17 09:12:01 · 25211 阅读 · 1 评论 -
cv2.ellipse()
OpenCV-Python是旨在解决计算机视觉问题的Python绑定库。cv2.ellipse()方法用于在任何图像上绘制椭圆。cv2.ellipse(image, centerCoordinates, axesLength, angle, startAngle, endAngle, color [, thickness[, lineType[, shift]]])参数:image:它是要在其上绘制椭圆的图像。 centerCoordinates:它是椭圆的中心坐标。坐标表示为两个值的元组,原创 2022-03-18 10:40:32 · 8844 阅读 · 1 评论 -
cv2的旋转矩形交集cv2.rotatedRectangleIntersection(rect1, rect2)与最小外接矩形cv2.minAreaRect(box)
求两个带角度矩形的 交集,后续可以 计算iou参数定义:rect 矩形的 x,y w h ,theta这里的角度定义 逆时针为负,顺时针为正rect1 = ((50,50), (100,100), 0) # x,y w,hrect2 = ((90,100), (50,2), 60)r1 = cv2.rotatedRectangleIntersection(rect1, rect2) # 区分正负角度,逆时针为负,顺时针为正order_pts = cv2.convexHul.原创 2022-03-20 13:41:06 · 1885 阅读 · 1 评论 -
cv2.copyMakeBorder()
参考依据OpenCV-Python官方教程:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_core/py_basic_ops/py_basic_ops.html设置边界框如果你想给你的图片设置边界框,就像一个相框一样的东西,你就可以使用cv2.copyMakeBorder()函数。但其在卷积操作、零填充等也得到了应用,并且可以用于一些数据增广操作。参数src : 输入的图片 top,原创 2022-03-20 13:41:13 · 5661 阅读 · 1 评论 -
cv2.getTextSize()
def _stampText(image, text, line): font = cv2.FONT_HERSHEY_SIMPLEX font_scale = 0.55 margin = 5 thickness = 2 color = (255, 255, 255) size = cv2.getTextSize(text, font, font_scale, thickness) text_.原创 2022-03-19 10:23:25 · 5151 阅读 · 0 评论 -
cv2.putText字体比较
info = 'Hello World'cv2.putText(original_image, text=info, org=(10, 25), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=1,color=(255, 0, 0), thickness=2) # putText各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色黑,字体粗细cv2.putText(original_image, text=info, org=(10, 30*2).原创 2022-03-19 10:23:09 · 7282 阅读 · 1 评论 -
cv2.Sobel()
函数cv2.Sobel(src, ddepth, dx, dy[, ksize[, scale[, delta[, borderType]]]])概述:利用Sobel算子进行图像梯度计算参数:src:输入图像 ddepth: 输出图像的深度(可以理解为数据类型),-1表示与原图像相同的深度 dx,dy:当组合为dx=1,dy=0时求x方向的一阶导数,当组合为dx=0,dy=1时求y方向的一阶导数(如果同时为1,通常得不到想要的结果) ksize:(可选参数)Sobel算子的大小,必须是1,原创 2022-03-09 10:12:34 · 5974 阅读 · 1 评论 -
cv2.warpAffine 参数详解
warpAffine :意思是仿射变化。官方给出的参数为:cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst其中:src – 输入图像。M – 变换矩阵。dsize – 输出图像的大小。flags – 插值方法的组合(int 类型!)borderMode – 边界像素模式(int 类型!)borderValue – (重点!)边界填充值; 默认情况下,它为0。上述参数中:原创 2022-03-09 10:12:37 · 19349 阅读 · 0 评论 -
cv2.fillConvexPoly()与cv2.fillPoly()填充多边形
cv2.fillConvexPoly()cv2.fillConvexPoly()函数可以用来填充凸多边形,只需要提供凸多边形的顶点即可.我们来画一个三角形img = np.zeros((1080, 1920, 3), np.uint8)triangle = np.array([[0, 0], [1500, 800], [500, 400]])cv2.fillConvexPoly(img, triangle, (255, 255, 255))plt.imshow(img)plt.原创 2022-03-21 10:36:41 · 2279 阅读 · 0 评论 -
cv2.cvtColor()-颜色空间转换函数
opencv中有多种色彩空间,包括 RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab8种,使用中经常要遇到色彩空间的转化。可以使用opencv中cv2.cvtColor()函数来改变图像的颜色空间,该函数形式为:cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)@frame为要进行处理的图片;@cv2.COLOR_BGR2RGB要进行的色彩转换方式;opencv中的颜色空间种类以及支持的转换类型如下:承接Matlab、Python和C原创 2022-03-09 10:13:01 · 32126 阅读 · 0 评论 -
OpenCV绘图之字体和文字
在OpenCV中输出文本是比较方便吧,有一个问题就是获取字体有那么一点麻烦,需要调用函数来实现其赋值,作为字体参数,而输出文本只需要设置字体,文本输出位置,文本的颜色,文本字符串,显示文本的图像这几个参数.下面说一下输出文本的函数:void cvPutText{CvArr * img,const char* text,CvPoint origin,const CvFont * font,CvScalar color};const CvFont * font 参数是通过c原创 2022-03-28 10:46:15 · 1786 阅读 · 0 评论 -
Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()
一、需要工具本机使用python 2.7.10下调试代码均通过,一下学习需要有一定的代码阅读能力,一下学习只介绍函数方法:Python 作为一种高效简洁的直译式语言非常适合我们用来解决日常工作的问题。而且它简单易学,初学者几个小时就可以基本入门。再加上Numpy 和matplotlib 这两个翅膀,Python 对数据分析的能力不逊于Matlab。Python 还被称为是胶水语言,有很多软件都提供了Python 接口。尤其是在linux 下,可以使用Python 将不同的软件组成一个工作流,发挥每.原创 2022-04-06 10:11:38 · 2589 阅读 · 0 评论 -
python opencv 图像尺寸变换
源文件:就不用说了目标:你可以对图像进行倍数的放大和缩小 也可以直接的输入尺寸大小变换的方法:CV_INTER_NN-最近邻插值, CV_INTER_LINEAR-双线性插值(缺省使用) CV_INTER_AREA-使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于CV_INTER_NN方法.. CV_INTER_CUBIC-立方插值. 如 我要将一个图片变为32*32大小的image=cv2.imread('tes...原创 2022-04-21 10:29:54 · 1963 阅读 · 0 评论 -
OPENCV开发环境配置
1.使用Visual Studio 2017作为Linux C++开发工具2.Codeblocks + opencv + Cmake + minGW 环境搭建(一劳永逸版)3.OpenCV3.4+VisualStudio2017开发环境配置指导4.OpenCV环境搭建(采用官方已经编译好的)...原创 2022-04-07 10:58:04 · 1724 阅读 · 0 评论 -
python 调用opencv查看图片尺寸
import cv2img_path = 'frame_000001.jpg'img = cv2.imread(img_path)size = img.shape# ==>(224, 224, 3), type: tuple原创 2022-04-21 10:29:38 · 4669 阅读 · 0 评论 -
opencv绘图函数(cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse() cv2. cv2.putText() )
主要有cv2.line()//画线, cv2.circle()//画圆, cv2.rectangle()//长方形,cv2.ellipse()//椭圆, cv2.putText()//文字绘制主要参数img:源图像 color:需要传入的颜色 thickness:线条的粗细,默认值是1 linetype:线条的类型,8 连接,抗锯齿等。默认情况是 8 连接。cv2.LINE_AA 为...原创 2022-05-19 13:41:25 · 12301 阅读 · 1 评论 -
cv2.applyColorMap 伪色彩
用途在图像处理中,伪色彩用途广泛。在OpenCV库中,常见的伪色彩模式都可通过 cv2.applyColorMap(src, userColor[, dst]) 直接调用,很是方便快捷。例如伪色彩中的 COLORMAP_JET模式,就常被用于生成我们所常见的 热力图:Syntaxcv2.applyColorMap(src, userColor[, dst])Args:COL...原创 2022-05-19 13:41:40 · 3719 阅读 · 1 评论 -
基于Opencv的抠图
举一个例子,我想要把一张图片中的某一个东西抠出来。如下图:step1:加载图片,转成灰度图。image = cv2.imread("353.jpg") //opencv 中载入图片gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)。 //灰度化step2:用Sobel算子计算x,y方向上的梯度,之后在x方向上减去y方向上的...原创 2022-05-19 13:41:58 · 12756 阅读 · 6 评论 -
Opencv图像基本操作
cv2.imread('cat.jpg', cv2.IMGREAD_GRAYSCALE) # 使用imread读入图像(BGR顺序), 使用IMGREAD_GRAYSCALE 使得读入的图片为灰度图。 cv2.imshow('cat', img) # imshow表示展示图片,第一个参数表示图片的名字, 第二个参数表示需要显示的图片。 cv2.waitKey(0) #表示图片停留的时间,...原创 2022-05-27 14:25:04 · 282 阅读 · 0 评论 -
cv2.flip
Syntaxflip(src, flipCode[, dst])argsflipCode Anno 1 水平翻转 0 垂直翻转 -1 水平垂直翻转 DemoOriginal Image Flipped Horizontally ...原创 2022-04-17 10:52:21 · 980 阅读 · 0 评论 -
cv2.cvtColor
opencv中有多种色彩空间,包括 RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab8种,使用中经常要遇到色彩空间的转化,以便生成mask图等操作。可以使用下面的色彩空间转化函数 cv2.cvtColor( )进行色彩空间的转换:HSV 表示hue、saturation、valueimage_hsv = cv2.cvtColor(image,cv2.CO......原创 2022-06-28 14:59:46 · 3171 阅读 · 0 评论 -
cv2.resize()
1、简介cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)scr:原图 dsize:输出图像尺寸 fx:沿水平轴的比例因子 fy:沿垂直轴的比例因子 interpolation:插值方法2、代码实现import cv2import numpy as npimg = cv2.imread......原创 2022-07-26 09:19:17 · 723 阅读 · 0 评论 -
cv2.warpAffine( )
cv2.warpAffine(src, M, dsize[, flags[, borderMode[, borderValue ]]])参数解析:参数 解释 src 输入图像矩阵 M 2行3列的放射变换矩阵 dsize 二元元组(宽,高),输出图像的大小 flags 插值法:INTE_NEAREST、INTE_LINEAR(默认)等 bor...原创 2022-11-14 16:42:13 · 1541 阅读 · 0 评论 -
cv2.getRotationMatrix2D()
图像的旋转矩阵一般为: 但是单纯的这个矩阵是在原点处进行变换的,为了能够在任意位置进行旋转变换,opencv采用了另一种方式: 为了构造这个矩阵,o...原创 2022-11-14 16:42:32 · 20953 阅读 · 5 评论 -
cv2.rectangle()和cv2.boundingRect()
cv2.boundingRect(img)这个函数这个函数很简单,img是一个二值图,也就是它的参数;返回四个值,分别是x,y,w,h;x,y是矩阵左上点的坐标,w,h是矩阵的宽和高。然后利用cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2)画出矩行参数解释第一个参数:img是原图第二个参数:(x,y)是矩阵的左上点坐标第三...原创 2022-11-14 16:43:19 · 10018 阅读 · 1 评论 -
cv2.putText()
import cv2img = cv2.imread('caijian.jpg')font = cv2.FONT_HERSHEY_SIMPLEXimgzi = cv2.putText(img, '000', (50, 300), font, 1.2, (255, 255, 255), 2)无论是cv2.imshow('',img)cv2.waitKey()cv2.dest...原创 2022-09-11 14:40:08 · 4148 阅读 · 0 评论 -
查看opencv版本(python)
安装"opencv"pip install opencv查看版本 import cv2 cv2.__version__原创 2022-08-31 17:40:47 · 6014 阅读 · 0 评论 -
opencv+python 添加文字 cv2.putText
import cv2img = cv2.imread('caijian.jpg')font = cv2.FONT_HERSHEY_SIMPLEXimgzi = cv2.putText(img, '000', (50, 300), font, 1.2, (255, 255, 255), 2)无论是cv2.imshow('',img)cv2.waitKey()cv2.destr...原创 2022-08-31 17:40:35 · 4225 阅读 · 0 评论 -
cv2.VideoWriter()
用 OpenCV 开发难免会针对 Camera 或者是 Video 做处理,有的时候需要将画面保留下来,这个时候最佳方案是保存成一个 .avi 的文件。OpenCV 底层是用 FFMEPG 进行多媒体开发的,所以 OpenCV 它的长项不在于此,它只是提供了这种能力而已,如果要针对多媒体文件做复杂的处理,推荐的还是 FFMEPG 专业库。OpenCV 用来创建视频文件的类是 VideoWr......原创 2022-08-31 17:39:57 · 43118 阅读 · 6 评论 -
cv2.resize()
cv2.resize(src,dsize[,dst[,fx[,fy[,interpolation]]]])->dst参数说明:src - 原图dst - 目标图像。当参数dsize不为0时,dst的大小为size;否则,它的大小需要根据src的大小,参数fx和fy决定。dst的类型(type)和src图像相同dsize - 目标图像大小。当dsize为0.........原创 2022-08-31 17:39:53 · 11319 阅读 · 1 评论 -
如何采用Python读取一个图像
1、按键盘上的“Win+R”键调出运行后输入“cmd”点击确定 2、输入“pip install opencv-python”安装opencv模块 3、重新进入,输入“python”调用python环境 4、...原创 2022-08-30 19:25:42 · 3466 阅读 · 0 评论 -
cv2.VideoWriter_fourcc()
#环境:opencv 3.4.0 python 3.5.2#读取视频import cv2cap = cv2.VideoCapture('video.avi')#读取摄像头,0为摄像头索引,当有多个摄像头时,从0开始编号cap = cv2.VideoCapture(0)#从视频或摄像头中读取一帧(即一张图像),返回是否成功标识ret(True代表成功,Fals......原创 2022-08-31 17:40:07 · 31188 阅读 · 3 评论 -
opencv图像的几何变换
常见的几何变换有缩放,仿射,透视变换,可以通过如下函数完成对图像的上述变换dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) dst = cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) dst = cv2.wa......原创 2022-08-17 17:31:28 · 649 阅读 · 0 评论 -
cv2.waitKey()
cv2.waitKey接口Python: cv2.waitKey([delay]) → retvalParameters: delay – Delay in milliseconds. 0 is the special value that means “forever”.The function waitKey waits for a key event infin...原创 2022-08-31 17:39:47 · 5001 阅读 · 0 评论 -
VideoCapture.get()(python)
param define cv2.VideoCapture.get(0) 视频文件的当前位置(播放)以毫秒为单位 cv2.VideoCapture.get(1) 基于以0开始的被捕获或解码的帧索引 cv2.VideoCapture.get(2) 视频文件的相对位置(播放):0=电影开始,1=影片的结尾。 cv2.VideoCapture.get(3) ......原创 2022-08-31 17:40:14 · 787 阅读 · 0 评论 -
在已经配置了Tensorflow的虚拟环境中配置Opencv
在开发环境里面已经安装了tensorflw,但是有时候需要进行底层图像处理,需要配置opencv,下面介绍在虚拟环境中配置opencv的方法。进入Ubuntu,anaconda环境中的tensorflow虚拟环境,并在tensorflow环境中输入如下命令:conda install --channel https://conda.anaconda.org/menpo opencv...原创 2022-12-19 19:23:47 · 1654 阅读 · 2 评论