
【4-2】opencv
opencv的安装部署,以及函数介绍和使用
阿颖&阿伟
这个作者很懒,什么都没留下…
展开
-
【opencv基础】遍历图像像素(c++版和python)
C++版//表示单通道Mat型图像image在(x,y)坐标上的值image.at<uchar>(y,x) //表示三通道Mat型图像image在c通道(x,y)坐标上的值image.at<Vec3b>(y,x)[c]实例:求图像灰度值均值int* mean(Mat image){ int *mean; if(image.type() == CV_8UC1)//单通道图像,即灰度图 { mean[0] = 0; for(int y=0; y<i原创 2020-08-31 17:49:22 · 1166 阅读 · 1 评论 -
【opencv基础】将图像的一块区域替换成另一张图像
之前做项目的时候,将一个整图切片成32*32的小方格,分开处理最后在拼接起来。后来出问题找到是拼接部分出来问题,把问题修改了过来;先上正确代码://原图像Mat img = Mat::Mat(row,col, CV_8UC1, Scalar(0));// 设定被替换区域Rect roi(0,0,32,32)//替换所需的局部图像Mat dst= func();//替换原图局部区域dst.copyTo(img(roi));原先的错误代码//原图像Mat img = Mat::Mat原创 2020-09-01 11:24:42 · 5686 阅读 · 1 评论 -
【opencv基础】形态学变换(腐蚀erode,膨胀,开运算,闭运算)
1.腐蚀erode:C++ API:补充:记录一个踩过的坑将一个在python上的图像算法用C++重写:python中的腐蚀变换: binary_img = cv2.erode(binary_img, kernel=np.ones((3, 3), np.uint8), iterations=1)然后写成C++的时候不在意地写成了:erode(binary_img, binary_img, (3,3), Point(-1, -1), 1,);结果,这个erode变换没有任何变换;最后找到原创 2024-04-20 15:06:19 · 297 阅读 · 0 评论 -
【opencv基础】findContours 与drawContours 函数使用
C++:findContours()函数原型:void findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Point());/*第一个参数:InputOutputArray image: image表示输入的目标图像,类原创 2020-09-02 14:34:28 · 3583 阅读 · 1 评论 -
ubuntu 16.04 安装opencv4.2.0+opencv_contrib+CUDA支持 流程
1.下载opencv源码:官网下载:https://opencv.org/releases.html扩展包contrib库:https://github.com/opencv/opencv_contrib/releases2.解压opencv包在Ubuntu里解压下载好的包:2.1 压缩包格式是zip,使用unzip解压2.2 压缩包格式是tar.gz,使用tar -zxvf解压;出现报错:gzip: stdin: not in gzip formattar: Child returne原创 2020-09-05 13:56:00 · 2056 阅读 · 2 评论 -
ubuntu QT部署opencv
1.ubuntu 安装opencvubuntu 16.04 安装opencv4.2.0+opencv_contrib+CUDA支持 流程2.QT pro文件修改:目前是opencv4,以实际安装版本为准;可根据自己根目录实际情况修改路径INCLUDEPATH += /usr/local/include \ /usr/local/include/opencv4 \ /usr/local/include/opencv4/opencv2原创 2020-09-08 19:00:51 · 558 阅读 · 1 评论 -
【opencv】c++中的Mat类型以及相关矩阵运算
1.Mat 与常数的四则运算Mat与常数的运算实际上就是Mat内的每一个元素都与常数运算;运算结果依旧是个矩阵,与原矩阵尺寸不变;矩阵内的元素都统一进行了与常数的四则运算;例如:Mat型image + 1表示image内的每一个元素都+1;实例:#include <opencv2/opencv.hpp>using namespace cv;int main(){ Mat src = Mat::ones(Size(10, 10), CV_8UC1); for (int y =原创 2024-04-20 14:57:12 · 287 阅读 · 1 评论 -
Ubuntu QT 载入opencv
主要在项目中pro文件下修改路径可能都会偏差,根据自己实际路径为准;也可以根据需求选择性的添加so库,不必全部添加;原创 2020-04-21 10:54:23 · 317 阅读 · 0 评论 -
windows下 编译CUDA版的opencv流程记录
前言:项目需要用到opencv中dnn模块,默认下载的opencv不带cuda,因此需要对opencv重新编译1.检查cuda版本 cmd:nvcc -V2.自行下载opencv源文件(若是opencv官网下载,则源文件在source文件夹内)和对应版本的opencv_contrib(https://github.com/opencv/opencv_contrib/releases)3.下载cmake:https://cmake.org/download/4.打开bin目录下cmake-gu原创 2020-06-18 16:54:17 · 1444 阅读 · 1 评论 -
opencv VideoCapture抓取RTSP高延迟,崩溃解决方法
目前项目需要对网络摄像头进行实时视觉算法检测。遇到问题:在使用抓取VideoCaptureRTSP流的过程中,若需要对图像进行处理,则最后的显示结果画面就会表现出高延迟,然后卡住,很快崩溃;直观感受:图像处理速度远不如VideoCapture抓取速度,然后感觉是有内置缓存的,导致卡顿,延迟;对VideoCapture进行等待处理,效果不佳;解决思路:采用多线程的方式,为VideoCapture单独开一个线程,自动抓取图像,并且存储到一个容器中,容器若满了自动更新容器,清理掉前面的图像,存储最新的原创 2020-06-24 17:05:42 · 21588 阅读 · 6 评论 -
PyCharm 导入 cv2
windows下1.情况一:已在官网下载opencv无需下载,只需要导入环境即可;1.首先,在opencv目录中找到cv2文件夹:opencv3.4.8\opencv\build\python\cv2复制文件夹2.找到Python的根路径,在项目列表可查看(以实际显示的路径为主):在python.exe目录下找到 Lib\site-packages,粘贴文件夹2.情况二:下载并...原创 2020-01-17 16:50:09 · 18011 阅读 · 5 评论 -
opencv自带cascade检测模型位置
F:\opencv3.4.8\opencv\sources\samples\winrt_universal\VideoCaptureXAML\video_capture_xaml原创 2020-02-20 16:47:04 · 607 阅读 · 1 评论 -
Windows QT下部署opencv教程。(通过cmake编译opencv)
https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows原创 2020-03-06 10:04:24 · 1407 阅读 · 1 评论 -
OpenCV VideoCapture.get()参数详解
param definecv2.VideoCapture.get(0) CV_CAP_PROP_POS_MSEC 视频文件的当前位置(播放)以毫秒为单位cv2.VideoCapture.get(1) CV_CAP_PROP_POS_FRAMES 基于以0开始的被捕获或解码的帧索引cv2.VideoCapture.get(2) CV_CAP_PROP_POS_AVI_RATIO 视频...原创 2020-04-16 15:43:13 · 4512 阅读 · 1 评论 -
级联分类器 opencv_traincascade 错误:dataset for temp stage can not be filled····
Train dataset for temp stage can not be filled. Branch training terminated.Cascade classifier can’t be trained. Check the used training parameters.训练的时候发生过这样的错误:一般都是都是数据集方面有些问题,导致读取失败1.检查正样本和负样本的描...原创 2019-08-31 11:21:54 · 609 阅读 · 0 评论 -
opencv:Can not get new positive sample
运行opencv_traincascade .exe训练完第一层出现错误:OpenCV: terminate handler is called! The last OpenCV error is:OpenCV(3.4.6) Error: Bad argument (> Can not get new positive sample. The most possible reason...原创 2019-09-02 14:45:16 · 2842 阅读 · 1 评论 -
opencv鼠标截图的简单实现
以下是用opencv实现的一个简单的窗口截图程序:#include <iostream>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;/*截图方式说明:1.鼠标左键按下则为截图起始点方法一:鼠标左键一直按下,直到鼠标移动到目标点再松开,即可完成一次截图;方法二:鼠...原创 2019-09-05 14:48:45 · 2003 阅读 · 1 评论 -
opencv 将视频流转换成帧图像(支持asf,mp4,avi)
#include <opencv2/opencv.hpp>#include <iostream>using namespace cv;using namespace std;int main(){ //打开视频路径 VideoCapture cap("G:\\video\\chan4 2020-01-08 11.50.00 - 12.09.26.asf")...原创 2020-01-10 14:21:30 · 1586 阅读 · 2 评论 -
关于级联分类器检测框的输出尺寸
关于对级联分类器理解的一个误区:之前一直以为流程是这样的,从最大尺寸开始,每次根据scaleFactor进行缩小,直到缩小到下限。。。后来发现不管怎么缩小下限,都会输出同一个结果:比如原先输出到尺寸为24,然而24的尺寸不能检测到我希望捕捉到更小目标,不断地调节级联分类器的最小尺寸和每次缩放比例,并不能继续减小输出框的尺寸,始终是24.不断摸索查资料,最终才知道检测框的尺寸必须比训练样本的...原创 2019-06-13 10:56:47 · 409 阅读 · 0 评论 -
【opencv】自适应尺寸模板匹配
opencv自带的模板匹配常规做法:1.转换灰度图 cvtColor(img_template, img_template, CV_RGB2GRAY); cvtColor(org, org, CV_RGB2GRAY);2.matchTemplate模版匹配matchTemplate(const CvArr* image, //待搜索图像constCvArr* templ, /...原创 2019-04-28 15:34:37 · 16293 阅读 · 20 评论 -
【opencv】 通过轮廓识别提取检测目标
工作中,需要在视频中取出的帧标注出目标物体;方案之一:通过Canny轮廓识别,寻找轮廓,最后用矩形框选目标;效果:算法对环境稳定性有要求,特别是阈值的选择。可以对特定的图像特定使用;不适用环境多变,阈值多变的视频取帧中使用;1.转换为灰度图cvtColor(org, org, CV_RGB2GRAY);2.高斯滤波void GaussianBlur(InputArray src, ...原创 2019-04-28 11:18:35 · 5917 阅读 · 1 评论 -
Mac下安装opencv,以及xcode的调用
预先准备如果没有装Homebrew的先安装Homebrew:https://brew.sh/index_zh-cn.html终端输入官网指令;回车自动下载安装;没有安装cmake的安装cmake:先安装好Homebrew,然后依次输入指令brew updatebrew upgradebrew install cmake1.下载opencv:下载相应的压缩包(.zip文件...原创 2019-04-15 20:09:28 · 388 阅读 · 1 评论 -
类似opencv2/core.hpp与opencv2/core/core.hpp的区别
以前一致有过这部分的疑惑,为什么有些地方会出现<opencv2/highgui.hpp>有些地方会出现<opencv2/highgui/highgui.hpp>,具体会有什么区别。没有查到相关的解释,可能是认为这类问题太无聊了。。。以下是自己的判断+猜测:1.在存放opencv文件夹下/include/opencv2中:会有各个模块命名的文件夹和同名的hpp文件;...原创 2019-04-10 11:34:30 · 4379 阅读 · 1 评论 -
关于opencv-CascadeClassifier(级联分类器)的初步认识
opencv Objdetect目标检测模块中的CascadeClassifier类;1.load()加载xml级联分类器CascadeClassifier g_cascadeg_cascade.load("XXX/YYY.xml");2.调用detectMultiScale()实现多尺度检测:g_cascade.detectMultiScale(InputArray image, /...原创 2019-04-10 10:14:56 · 35880 阅读 · 5 评论 -
VS2015安装opencv3.4.5步骤
1.官网下载,并安装https://opencv.org/releases.html2.系统环境变量设置Win10:右击电脑 – 属性 – 高级 – 环境变量 – 系统变量 – 编辑 path加入路径:例如 E:opencv\build\x64\vc143.打开VS2015新建项目,选择好对应的平台(以debug x64为例),打开属性管理器找不到:视图 – 其他窗口 – 属性管理器...原创 2019-03-25 00:59:09 · 2435 阅读 · 0 评论 -
如何把opencv的库加入项目中(解决项目在不同电脑上重新配置的问题)
需求:接手了一个视觉项目,其中opencv一类的包含目录和库目录都是绝对地址,由于opencv的版本可能不一致,导致链接器的附加依赖项需要把opencv部分全部清除,重新添加自己版本的opencv,非常麻烦浪费时间; 因此尝试把opencv内的库粘贴到项目目录下,把路径改为相对路径,重新改写附加依赖项; 这样做法的优点: 1.可以把项目运行在没有安装opencv的电脑上; 2.解决不同版本...原创 2018-08-29 16:16:57 · 4641 阅读 · 2 评论 -
cv2旋转:cv2.getRotationMatrix2D+cv2.warpAffine(python将图像旋转90度)
(h, w) = self.cv2_img.shape[:2](cX, cY) = (w // 2, h // 2)M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0) cos = np.abs(M[0, 0])sin = np.abs(M[0, 1])nW = int((h * sin) + (w * cos))nH = int((h * cos) + (w * sin))M[0, 2] += (nW / 2) - cXM[1, 2] +=原创 2021-06-05 01:07:04 · 1839 阅读 · 0 评论 -
opencv报错:ImportError: libGL.so.1: cannot open shared object file: No such file or directory
在docker内安装opencv-python遇到:解决方案: sudo apt update sudo apt install libgl1-mesa-glx原创 2021-06-11 13:18:19 · 613 阅读 · 1 评论 -
【opencv】关于调整对比度与亮度的视觉算法
方法1:线性调整对比度与亮度如公式1所示,表示原先像素点的像素值,c表示的权重值,b表示加权和后的图像的偏移量,表示调整后改像素点的像素值。在该算法中,将对比度与亮度设计为线性关系。v’ = v*c+b代码:def Change_contrast_brightness(img, c, b): h, w, d = img.shape blank = np.zeros([h, w, d], dtype=np.uint8) dst = cv2.addWeighted(img, c,原创 2021-11-02 13:52:12 · 1955 阅读 · 0 评论