
OpenCV
莫余
无论如何,都要去试一试,哪怕不能证明我可以!
展开
-
解决报错:TypeError: load() missing 1 required positional argument: ‘Loader‘
报错语句self.update(yaml.load(fo.read()))报错原因yaml 5.1版本后不再使用yaml.load(file),而是是使用## 报错语句yaml.load(file,Loader = yaml.FullLoader)修改如下self.update(yaml.load(fo.read(),Loader = yaml.FullLoader))原创 2022-01-06 09:50:45 · 10523 阅读 · 0 评论 -
解决:cv2.error: OpenCV(4.5.1) XXX\shapedescr.cpp:315: error: (-215:Assertion failed) npoints >= 0 &&……
文章目录解决错误方案错误再现源代码修改之后的代码报错原因解决错误方案错误再现Traceback (most recent call last): File "D:/pythonProjects/Object_movement/object_movement.py", line 88, in <module> c = max(cnts, key=cv2.contourArea)cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\原创 2022-01-04 16:11:52 · 3698 阅读 · 3 评论 -
【OpenCV】cv2.putText()函数用法
文章目录cv2.putText()函数用法参数字体选择例如cv2.putText()函数用法cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])参数image:要在其上绘制文本的图像。text:要绘制的文本字符串。org:它是图像中文本字符串左下角的坐标。坐标表示为两个值的元组,即(X坐标值,Y坐标值)。font:它表示字体类型。一些字体类型是FON原创 2021-11-10 17:58:45 · 37835 阅读 · 0 评论 -
解决:VideoWriter保存视频无法打开以及保存的视频仅有几KB
文章目录VideoWriter保存视频无法打开以及保存的视频仅有几KB函数参数问题视频运行问题VideoWriter保存视频无法打开以及保存的视频仅有几KB函数参数问题vw = cv2.VideoWriter(filename, fourcc, output_fps, size,isColor)的参数设置有问题,或者是vw.write(frame)的参数frame有问题,常见情况有:filename的父目录不存在,或者没有权限在path位置创建文件,或者filename的扩展名不是有效的视频文件原创 2021-11-10 11:11:01 · 4682 阅读 · 0 评论 -
Python读取/保存图片的3种方式(PIL、matplotlib、cv2)
文章目录Python读取/保存图片的3种方式PIL方式matplotlib方式OpenCV方式总结:Python读取/保存图片的3种方式PIL方式from PIL import ImageI = Image.open('./image.png')print(type(I)) #---><class 'PIL.JpegImagePlugin.JpegImageFile'>print(I.size) #--->(1280, 720)I.show()原创 2021-11-09 15:31:47 · 26070 阅读 · 0 评论 -
【OpenCV】获得视频的帧数、FPS以及按帧数将图片保存到本地
文章目录视频操作获得视频的帧数获得视频的FPS按帧数将图片保存到本地视频操作获得视频的帧数import osimport cv2video_cap = cv2.VideoCapture('./input/test_1.mp4')frame_count = 0all_frames = []while(True): ret, frame = video_cap.read() if ret is False: break all_frames.appen原创 2021-11-02 15:08:30 · 2357 阅读 · 1 评论 -
【OpenCV】高斯双边模糊
文章目录高斯双边模糊完整代码结果展示高斯双边模糊完整代码void QuickDemo::bifilter_demo(Mat &image){ Mat dst; bilateralFilter(image,dst,0,100,0); //参数1代表原图,参数2代表处理之后的图像,参数3色彩空间。参数4表示坐标空间,双边是指 色彩空间和坐标空间。 namedWindow("双边模糊", WINDOW_FREERATIO);//创建了一个新窗口,参数1表示名称,第二个参数代表一个自由的比原创 2021-10-30 14:51:56 · 270 阅读 · 0 评论 -
【OpenCV】高斯模糊
文章目录高斯模糊函数原型完整代码结果展示高斯模糊高斯滤波是一种线性滤波,对去除高斯噪声有很好的效果,中心占比最大。函数原型void GaussianBlur( InputArray src, OutputArray dst, Size ksize,double sigmaX, double sigmaY = 0,int borderType = BORDER_DEFAULT );src:输入图像dst:输出图像ksize:高斯内核大小sigmaX:高斯核函数在X方向上的标准偏差sigmaY原创 2021-10-30 14:22:17 · 1308 阅读 · 0 评论 -
【OpenCV】图像卷积操作
文章目录图像卷积操作完整代码结果展示文章目录图像卷积操作完整代码结果展示图像卷积操作均值卷积的作用,高的往下降,低的往上升。但是会造成信息丢失,产生模糊效果。一种线性操作,点乘,之后相加。完整代码void QuickDemo::blur_demo(Mat &image){ Mat dst; blur(image, dst, Size(15, 15), Point(-1, -1)); //参数1原始图像,参数2卷积之后的图像,参数3卷积的矩阵大小,支持单行或者单列的卷积操作,参数4卷原创 2021-10-30 13:42:59 · 340 阅读 · 0 评论 -
【OpenCV】直方图均衡化
文章目录直方图均衡化完整代码结果展示直方图均衡化用途:用于图像增强,人脸检测,卫星遥感。均衡化的图像只支持单通道。完整代码void QuickDemo::histogram_eq_demo(Mat &image) { Mat gray; cvtColor(image, gray, COLOR_BGR2GRAY); //直方图均衡化只支持灰度图像,不支持彩色图像。 imshow("灰度图像", gray); Mat dst; equalizeHist(gray, dst); i原创 2021-10-30 12:38:14 · 177 阅读 · 0 评论 -
【OpenCV】图像直方图及二维直方图
图像直方图及二维直方图直方图代码void QuickDemo::histogram_demo(Mat &image) { // 三通道分离 std::vector<Mat> bgr_plane; split(image, bgr_plane); // 定义参数变量 const int channels[1] = { 0 }; const int bins[1] = { 256 }; float hranges[2] = { 0,255 }; const float*原创 2021-10-30 11:58:02 · 294 阅读 · 0 评论 -
【OpenCV】视频文件摄像头使用及视频处理与保存
文章目录视频文件摄像头使用完整代码视频处理与保存视频的属性完整代码视频文件摄像头使用完整代码void QuickDemo::video_demo(Mat &image) { VideoCapture capture(0); //打开摄像头 Mat frame;//定义一个二值化的 frame while (true) { capture.read(frame); //读取视频 //flip(frame, frame, 1);//图像镜像操作 if(frame.emp原创 2021-10-30 08:49:37 · 358 阅读 · 0 评论 -
【OpenCV】图像旋转
文章目录图像旋转getRotationMatrix2D(Point(w / 2, h / 2),45,1.0)函数完整代码结果展示图像旋转getRotationMatrix2D(Point(w / 2, h / 2),45,1.0)函数参数1原来图像的中心位置。参数2角度是多少。参数3是图像本身大小的放大缩小完整代码void QuickDemo::rotate_demo(Mat &image){ Mat dst, M; int h = image.rows;//定义图片的高度 i原创 2021-10-29 19:34:36 · 328 阅读 · 0 评论 -
【OpenCV】图像翻转
文章目录图像翻转flip()函数完整代码结果展示图像翻转flip()函数flip(InputArray src, OutputArray dst, int flipCode)参数: src ------ 原始图像矩阵; dst ----- 变换后的矩阵; flipMode ---- 翻转模式,有三种模式:完整代码void QuickDemo::flip_demo(Mat &image){ Mat dst; flip(image, dst, 0);/原创 2021-10-29 17:55:59 · 411 阅读 · 0 评论 -
【OpenCV】图像放缩与插值
文章目录图像放缩与插值完整代码结果展示图像放缩与插值介绍基本的图像变换大小的方法。图像的差值处理主要有线性、双线性差值、卢卡斯差值、双立方差值。完整代码void QuickDemo::resize_demo(Mat &image){ Mat zoomin, zoomout; int h = image.rows; int w = image.cols; resize(image, zoomin, Size(w/2, h/2),0,0,INTER_LINEAR); //线性差值操作原创 2021-10-29 11:01:11 · 230 阅读 · 0 评论 -
【OpenCV】图像像素类型转换与归一化
文章目录图像像素类型转换与归一化完整代码结果展示图像像素类型转换与归一化完整代码void QuickDemo::norm_demo(Mat &image){ Mat dst;//定义一个名为dst的二值化类型的数据 std::cout << image.type() << std::endl;//打印出来图片的类型 image.convertTo(image,CV_32F);//将dst数据转换成浮点型float32位数据。 std::cout <<原创 2021-10-29 10:26:04 · 565 阅读 · 0 评论 -
【OpenCV】鼠标操作与响应
文章目录鼠标操作与响应主要操作点击鼠标拖动移动鼠标抬起完整代码结果展示鼠标操作与响应主要操作点击鼠标捕捉位置拖动移动需要使用图片复制来擦除移动过程鼠标抬起鼠标复位完整代码//参数1表示鼠标事件。Point sp(-1, -1);//鼠标的开始的位置Point ep(-1, -1);Mat temp;static void on_draw(int event,int x,int y,int flags,void *userdata){ Mat image = *((Mat*)u原创 2021-10-29 10:06:05 · 494 阅读 · 0 评论 -
【OpenCV】多边形填充与绘制
文章目录多边形填充与绘制绘制多边形填充多边形完整代码结果展示多边形填充与绘制绘制多边形polylines(canvas, pts, true, Scalar(0, 0, 255), 2, 8, 0)参数1表示画布,参数2表示点集,参数3表示true,参数4颜色,参数5表示线宽,参数6表示渲染方式,参数7表示相对左上角(0,0)的位置drawContours(canvas,contours,-1, Scalar(0, 0, 255),-1)参数1表示画布;参数2表示容器名称;参数3为正表示多边形的原创 2021-10-29 09:19:44 · 365 阅读 · 0 评论 -
【OpenCV】随机数与随机颜色
文章目录随机数与随机颜色完整代码结果展示随机数与随机颜色RNG rng(1234);构造方法设定一个具体值,表示下面代码每次生成的结果都是一样的完整代码void QuickDemo::random_drawing() { Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3); int w = canvas.cols; int h = canvas.rows; RNG rng(12345); while (true) { int c = wai原创 2021-10-29 08:49:57 · 666 阅读 · 0 评论 -
【OpenCV】图像几何形状绘制
文章目录图像几何形状绘制绘制矩形绘制圆绘制直线结果展示图像几何形状绘制绘制矩形rectangle(img,Point(j,i),Point(j + img4.cols, i + img4.rows),Scalar(255,255, 0),2,8);参数如下:img:被处理的图片Point(j,i)代表矩形左上点的坐标Point(j + cols, i +rows)代表矩形右下点的坐标【矩形的大小(cols,rows】scalar:颜色2代表线条宽度8是线型,默认取8绘制圆cvCi原创 2021-10-29 08:20:29 · 342 阅读 · 0 评论 -
【OpenCV】图像像素值统计
文章目录图像像素值统计找图像全局最小值和全局最大值计算均值和标准差完整代码结果展示图像像素值统计双精度型变量 minv和maxv;指针变量minLoc,maxLoc。因为这图片是多通道的,所以使用一个容器装取数值,并且用split分离图片到MV中通过for循环操作,遍历图片信息,并且打印信息到终端。图像信息包括,方差,均值,大小。找图像全局最小值和全局最大值void minMaxLoc( const Mat& src, double* minVal, double* maxVal=0,原创 2021-10-28 15:03:36 · 1597 阅读 · 0 评论 -
【OpenCV】图像色彩空间转换
图像色彩空间转换首先把RGB色彩空间的图片转换到HSV空间中,其次,提取图片的mask,通过使用inrangle提取hsv色彩空间的颜色实现二值化功能void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst)参数1:输入要处理的图像,可以为单通道或多通道。参数2:包含下边界的数组或标量。参数3:包含上边界数组或标量。参数4:输出图像,与输入图像src 尺寸相同且为CV_8U 类型。请原创 2021-10-28 14:40:54 · 244 阅读 · 0 评论 -
【OpenCV】通道分离与合并
文章目录通道分离与合并通道混合完整代码结果展示通道分离与合并把不同的通道给分离,归并,使得能显现出来不同的通道颜色。通道混合void mixChannels(const Mat* src,int nsrc,Mat* dst ,int ndst,const int* fromTo,size_t npairs)函数参数1:输入矩阵,可以为一个也可以为多个,但是矩阵必须有相同的大小和深度。参数2:输入矩阵的个数。参数3:输出矩阵,可以为一个也可以为多个,但是所有的矩阵必须事先分配空间(如用creat原创 2021-10-28 14:05:48 · 809 阅读 · 1 评论 -
【OpenCV】图像像素的逻辑操作
文章目录图像像素的逻辑操作rectangle()函数完整代码结果展示图像像素的逻辑操作rectangle()函数rectangle(m1,Rect(100,100,80,80),Scalar(255,255,0),-1,LINE_8,0);参数1:图片名称参数2:矩形的起始&末尾位置参数3:Scalar表示将要绘制图像的颜色参数4:表示小于0表示填充,大于0表示绘制参数5:表示四邻域或者八邻域的绘制参数6:表示中心坐标或者半径坐标的小数位数。完整代码void QuickDemo原创 2021-10-28 10:56:59 · 281 阅读 · 0 评论 -
【OpenCV】自带颜色表操作
文章目录自带颜色表操作伪彩色完整代码自带颜色表操作伪彩色applyColorMap(src, dst, COLORMAP)参数1:src表示输入图像参数2:dst表示输出图像参数3:匹配到的颜色LUT,OpenCV支持20种颜色风格的查找表映射完整代码void QuickDemo::color_style_demo(Mat &image) { int colormap[] = { COLORMAP_AUTUMN, COLORMAP_BONE, COLORMAP_JET,原创 2021-10-28 10:08:41 · 330 阅读 · 0 评论 -
【OpenCV】键盘响应操作
文章目录键盘响应操作for循环完整代码结果展示键盘响应操作通过键盘输入,在终端得到响应,输入不同的键值,得到不一样的结果。for循环需要有退出机制 waitKey(100);完整代码void QuickDemo::key_demo(Mat &image) { Mat dst= Mat::zeros(image.size(), image.type()); while (true) { char c = waitKey(100);//停顿100ms 做视频处理都是1原创 2021-10-28 09:41:28 · 412 阅读 · 0 评论 -
【OpenCV】滚动条操作演示——调整图像亮度、对比度
文章目录滚动条操作演示——调整图像亮度融合两张图片添加Trackbar完整代码结果展示滚动条操作演示——调整图像亮度融合两张图片AddWeighted( const CvArr* src1, double alpha,const CvArr* src2, double beta,double gamma, CvArr* dst );参数1:src1,第一个原数组.参数2:alpha,第一个数组元素权重参数3:src2第二个原数组参数4:beta,第二个数组元素权重参数5:gamma,图1与图原创 2021-10-28 09:18:28 · 629 阅读 · 0 评论 -
【OpenCV】图像像素的算数操作
文章目录图像像素的算数操作对各个像素点实现加减乘除的操作完整代码结果展示图像像素的算数操作对各个像素点实现加减乘除的操作介绍了常用的除爆函数saturate_cast,防止数值过界。完整代码void QuickDemo::operators_demo(Mat &image) { Mat dst = Mat::zeros(image.size(), image.type()); Mat dst2 = Mat::zeros(image.size(), image.type()); Mat原创 2021-10-28 08:56:22 · 283 阅读 · 0 评论 -
【OpenCV】图像像素的读写操作
文章目录图像像素的读写操作遍历和修改每个像素点的数值,分为单通道和多通道。访问模式模式也有两种第一种是数组访问模式,用最常规的数组下标访问像素值。第二种为指针访问模式,指定一个指针为图片的首地址,通过循环遍历,指针++,一次往后推。结果展示图像像素的读写操作遍历和修改每个像素点的数值,分为单通道和多通道。多通道可以看成是数组。访问模式模式也有两种第一种是数组访问模式,用最常规的数组下标访问像素值。void QuickDemo::pixel_visit_demo(Mat &image){原创 2021-10-28 08:31:43 · 562 阅读 · 0 评论 -
【OpenCV】图像对象的创建与赋值
图像对象的创建与赋值1.怎么操作mat具体见下面代码详解2.怎么访问每一个像素点Scalar()函数3.怎么创建一个空图或者mat克隆、复制、初始化Mat基本结构完整代码#pragma once#include <opencv2/opencv.hpp>using namespace cv;class QuickDemo {public: void colorSpace_Demo(Mat& image);//定义一个类,里面包含输入一个图片,对图片操作原创 2021-10-27 20:28:11 · 606 阅读 · 0 评论