opencv
Small potatoes
这个作者很懒,什么都没留下…
展开
-
Retinex图像增强算法(SSR, MSR, MSRCR)详解及其OpenCV源码
这老哥写的也挺好,转起来,但是他已经不搞图像处理了,文章最下面有C++源码,可以下载,但是下载下来由于博主使用的是opencv2.4.9比较老一点,新一点的opencv会报错,用dst = cvarrToMat(&tmp_ipl);这个换掉报错的哪一行就可以在这里插入代码片Retinex图像增强算法(SSR, MSR, MSRCR)详解及其OpenCV源码Retinex是一种常用的建立在科学实验和科学分析基础上的图像增强方法,它是Edwin.H.Land于1963年提出的。就跟Matlab是转载 2022-05-01 16:57:08 · 866 阅读 · 0 评论 -
解决yolov5运行环境——pycocotools >= 2.0 安装失败问题 error: Microsoft Visual C++ 14.0 or greater is required.
这老哥的这个想法挺好,转起来尝试3: 直接安装 pycocotools_windows-2.0-cp37-cp37m-win_amd64.whl pip install C:\Users\22622\Downloads\pycocotools_windows-2.0-cp37-cp37m-win_amd64.whl 终于安装成功了,并且版本是2.0的,已经满足pycocotools >= 2.0了,但是在运行yolov5时,还是报错,提示pycocotools不满足要求。。转载 2022-05-01 16:51:29 · 1129 阅读 · 0 评论 -
用opencv中的stereo_match源码,就是视差图保存不成功(不是非法字符和含有中文路径))
用opencv中的stereo_match源码,就是视差图保存不成功,不是imwrite()中有非法字符也不是图片的路径有中文字符,就是保存不成功将源码中的if (!disparity_filename.empty()) imwrite(disparity_filename, disp8);两句代码改成imwrite("result.bmp", disp8);并且放在if (!no_display)函数下面就可以保存成功了。...原创 2020-08-27 20:11:53 · 291 阅读 · 0 评论 -
opencv CommandLineParser类功能解释 参数交互 keys指针
https://blog.csdn.net/KYJL888/article/details/83343849转载 2020-08-25 16:01:03 · 169 阅读 · 0 评论 -
eprojectImageTo3D函数讲解
函数名称:reprojectImageTo3D函数原型:void reprojectImageTo3D(InputArray disparity,OutputArray _3dImage,InputArray Q, bool handleMissingValues=false, int ddepth=-1 )函数作用:根据一组差异图像构建3D空间参数说明:disparity 视差图像。可以是8位无符号,16位有符号或者32位有符号的浮点图像。 _3dImage 和视差图同样大小的转载 2020-08-25 15:42:19 · 1100 阅读 · 0 评论 -
disp.convertTo(disp8u, CV_8U, 255 / (numberOfDisparities*16.))
记录一下最近困惑我的问题~方便以后查阅在学习立体匹配算法中BM算法时,出现在了关于类型转换的问题 :disp.convertTo(disp8u, CV_8U, 255 / (numberOfDisparities*16.))在opencv中,如果是float形式,如果用imshow函数显示,只会显示像素值在0.0-1.0之间的,如果像素值大于1.0会显示为白像素,小于0.0显示为黑。为了可视化float形式的图像。可以将它的值归一化到0-1;同理,如果用convertTo函数(src.convertT转载 2020-08-25 12:17:56 · 934 阅读 · 0 评论 -
openCV CV::StereoSGBM_create()参数的含义
static Ptr cv::StereoSGBM::create ( int minDisparity = 0,int numDisparities = 16,int blockSize = 3,int P1 = 0,int P2 = 0,int disp12MaxDiff = 0,int preFilterCap = 0,int uniquenessRatio = 0,int speckleWindowSize = 0,int speckleRange = 0,原创 2020-08-24 16:42:41 · 8478 阅读 · 0 评论 -
OpenCV(3)-图像resize
https://www.cnblogs.com/korbin/p/5612427.html在图像处理过程中,有时需要把图像调整到同样大小,便于处理,这时需要用到图像resize()原函数void resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )前两个参数分别为输入和输出图像。dsize表示输出图像的大小,如果为0,则dsize=转载 2020-08-19 17:30:22 · 158 阅读 · 0 评论 -
三维重建学习(1):基础知识:旋转矩阵与旋转向量
前言由于摄像机标定中会使用到旋转矩阵以及旋转向量的知识,所以就整理了一下有关与这一部分基础知识的笔记,并进行详细的数学推导。旋转矩阵如果已经上面的三个角度ϕ\phiϕ、θ\thetaθ、ψ\psiψ,,我们可以通过将每一步的旋转矩阵相乘得到整个旋转矩阵。R=Rx∗Ry∗RzR=R_x * R_y *R_z旋转向量相机标定中表示旋转的方式,除了使用前面介绍的旋转矩阵之外,还可以使用旋转向量来表示。我在网上搜索相关资料时,发现大多数都是直接给出了Rodrigue旋转向量的公式,而没有推导过程。如转载 2020-07-22 23:30:02 · 515 阅读 · 0 评论 -
用VS编译opencv的双目立体标定时注意事项
https://www.cnblogs.com/zyly/p/9366080.html用上面网址的代码进行双目标定时注意事项:1、sample文件放置在src目录下2、用vs2017编译的时候用debug下的x643、将代码防于opencv文件下原创 2020-07-11 15:20:34 · 165 阅读 · 0 评论 -
Opencv学习笔记(十一)OpenCV中feature2D学习——亚像素级角点检测(cornerSubPix)
概述除了利用Harris进行角点检测和利用Shi-Tomasi方法进行角点检测外,还可以使用cornerEigenValsAndVecs()函数和cornerMinEigenVal()函数自定义角点检测函数。如果对角点的精度有更高的要求,可以用cornerSubPix()函数将角点定位到子像素,从而取得亚像素级别的角点检测效果。cornerSubPix()函数(1)函数原型cornerSubPix()函数在角点检测中精确化角点位置,其函数原型如下:C++: void cornerSubPix(In转载 2020-06-21 21:58:33 · 866 阅读 · 0 评论 -
Opencv学习笔记(十)图像row、col坐标对应关系
OpenCV像素坐标系如下图所示:行列与坐标系对应关系行:Y列:X注意!注意!注意!在Mat类型变量访问时下标是反着写的,即:按照(y, x)的关系形式访问,下面通过代码展示来说明这一点代码演示#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/highgui.hpp"#include <iostream>using namespace cv;using namespac转载 2020-06-20 18:28:20 · 1157 阅读 · 0 评论 -
Opencv学习笔记(九)C++ 中CvTermCriteria---迭代算法终止条件结构体的---OpenCV源码分析
/*********************************************************************************************程序功能:1–CvTermCriteria—迭代算法终止条件结构体的—OpenCV源码分析编写环境:OpenCv2.4.8+VS2010地点时间:陕西师范大学 2016.4.22作者信息:九月*********************************************************转载 2020-06-20 11:30:24 · 829 阅读 · 0 评论 -
Opencv学习笔记(八)C++ 中const关键字到底该怎么用?
https://www.yanbinghu.com/2019/01/28/7442.html转载 2020-05-24 13:29:46 · 341 阅读 · 0 评论 -
Opencv学习笔记(七)C++ 中enum与typedef enum的使用方法
https://blog.csdn.net/king16304/article/details/52193562转载 2020-05-23 11:44:22 · 435 阅读 · 0 评论 -
Opencv学习笔记(六)C++ 中vector的使用方法
在c++中,vector是一个十分有用的容器。作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。特别注意:使用vector需要注意以下几点:1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;2、Vector作为函数的参数或者返回值时,需要注意它的写法:double Distanc转载 2020-05-17 09:52:44 · 1549 阅读 · 0 评论 -
Opencv学习笔记(五)关于cv::Point2d cv::Point2f cv:Point2i cv::Point2l cv::Point3d cv::Point3f cv::Point3i的见解
在opencv中该模板类涵盖几乎所有表示点的数据类型可以看到,该模板类有众多的具体化形式那么,这些类型中的数字(1,2,3),字母(i,f,d)都是什么意思呢?在此,记录一下数字(1,2,3)代表的是这个点的维度信息,字母(i,f,d,l)代表该点的类型,整形、浮点型、双精度、long (例如,long int 长整形)1代表1维,该点仅有X轴即可确定2代表2维,该点需要X、Y两轴来确定,3代表3维,需要由X,Y,Z三个轴来确定例如:我要创建四个个二维矩阵中的浮点型的点,那么我要指定点的类转载 2020-05-15 17:17:12 · 8471 阅读 · 0 评论 -
Opencv学习笔记(四)opencv中几个基本绘图操作(LINE、RECTANGLE、CIRCLE、ELLIPSE...)
https://www.freesion.com/article/644121212/原创 2020-05-15 10:52:48 · 328 阅读 · 0 评论 -
Opencv学习笔记(三)opencv中图像基础(大小,深度,通道)
创建图像包含三个元素:1、图像的大小 2、图像的深度 3、图像的通道例如:cvCreateImage(cvSize(imgMono->width,imgMono->height), IPL_DEPTH_8U, 3)1、图像的位深度及其取值范围:src.depth()Mat类型:矩阵数据类型:– CV_<bit_depth>(S|U|F)C<number_of_channels>S = 符号整型 U = 无符号整型 F = 浮点型E.g.转载 2020-05-14 09:17:33 · 842 阅读 · 0 评论 -
双目摄像头立体成像(三)双目摄像头的标定及测距(Ubuntu16.04 + OpenCV)
https://blog.csdn.net/qq_41433316/article/details/99118495转载 2020-05-13 22:30:18 · 1287 阅读 · 0 评论 -
双目摄像头立体成像(一)摄像头标定
https://www.cnblogs.com/german-iris/p/5074602.html转载 2020-05-13 22:28:08 · 835 阅读 · 0 评论 -
双目摄像头立体成像(二)畸变矫正与立体校正
一、立体校正的原因**原因一:**当畸变系数和内外参数矩阵标定完成后,就应该进行畸变矫正,以达到消除畸变的目的。**原因二:**在立体成像原理中提到,要通过两幅图像估计物点的深度信息,就必须在两幅图像中准确的匹配到同一物点,这样才能根据该物点在两幅图像中的位置关系,计算物体深度。为了降低匹配的计算量,两个摄像头的成像平面应处于同一平面。但是,单单依靠严格的摆放摄像头来达到这个目的显然有些困难。立体校正就是利用几何图形变换(Geometric Image Transformation)关系,使得原先不满转载 2020-05-13 22:23:43 · 7540 阅读 · 2 评论 -
Opencv学习笔记(二)Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解
(一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解1–Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类2–创建一个Mat对象的方法很多,我们现在先看一下Mat矩阵/图像容器类在OpenCv中的有关源代码:3–使用Mat图像容器类创建Mat类的对象 //! default constructor Mat(); //! constructs 2D matrix of the specified size and type // (_ty转载 2020-05-13 11:47:36 · 742 阅读 · 0 评论 -
Opencv学习笔记(一)Eigen
Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C++库,它里面包含了很多算法。它的License是MPL2。它支持多平台。Eigen采用源码的方式提供给用户使用,在使用时只需要包含Eigen的头文件即可进行使用。之所以采用这种方式,是因为Eigen采用模板方式实现,由于模板函数不支持分离编译,所以只能提供源码而不是动态库的方式供用户使用。矩阵的定义:Eigen中关于矩阵类的模板函数中,共有六个模板参数,常用的只有前三个。其前三个参数分别表示矩阵元素的类型、行数和列数。矩阵定义时可以使用Dyn转载 2020-05-13 11:18:04 · 993 阅读 · 0 评论 -
图像处理之_增强现实工具ARToolKit
1. 增强现实 增强现实(AR)是将电脑虚拟的图像覆盖到真实世界画面中,这个技术在工业和理论研究方面都存在着极大的潜能。2. 相关概念(1) ARToolkitARToolkit,是一个开源的AR(增强现实)SDK。它是用C/C++ 语言编写的库,通过它可以很容易地编写增强现实应用程序。 增强现实中最困难的部分在于实时的将虚拟图像覆盖到用户视口,并且和真实世界中的对象精确对齐。ARTool...转载 2020-04-22 18:14:55 · 932 阅读 · 0 评论 -
VS2017配置OpenCV4.0.1教程(步骤超详细!!)
前言:自己在找各种配置方法看了大概有20篇左右的博客,在踩了很多坑情况下花了一下午终于配置成功了。第一步:下载opencv安装包1、官网下载下面是官网的网址,大家可以根据自己情况选择合适的版本(我的是4.0.1版本)https://opencv.org/releases/page/2/第二步:直接解压下载的压缩包第三步:配置系统变量(WIN10)1、找到此电脑2、右键->属性...原创 2020-04-01 11:31:53 · 1419 阅读 · 0 评论