
opencv
文章平均质量分 54
Kelvin_Ngan
Make things easy
展开
-
opencv warpAffine仿射变换C++源码分析
opencv仿射变换C++源码分析原创 2025-01-10 13:34:18 · 417 阅读 · 0 评论 -
cv::RotatedRect::points误差较大
opencv RotatedRect的points问题原创 2024-11-13 10:52:33 · 430 阅读 · 0 评论 -
cv::RotatedRect通过3点构造函数程序崩溃
opencv旋转矩形3点构造的BUG原创 2024-11-09 14:41:58 · 293 阅读 · 0 评论 -
cv::intersectConvexConvex返回其中一个输入点集,两个点集不相交
cv::intersectConvexConvex的BUG原创 2024-11-08 15:50:08 · 657 阅读 · 0 评论 -
cv::convexityDefects异常
convexityDefects的BUG原创 2024-07-30 19:12:04 · 1153 阅读 · 0 评论 -
关于opencv的contourArea计算方法
contourArea问题原创 2023-10-18 22:46:28 · 2480 阅读 · 0 评论 -
opencv静态链接error LNK2019
opencv静态库编译依赖原创 2023-12-21 18:17:30 · 1330 阅读 · 0 评论 -
编译源码-【opencv3.4.16 + vs2013 x64】
opencv 3.4.16编译原创 2023-11-22 10:44:09 · 221 阅读 · 0 评论 -
【opencv】debug报错HEAP CORRUPTION DETECTED
opencv debug HEAP CORRUPTION异常原创 2023-11-20 23:24:21 · 622 阅读 · 0 评论 -
指针构造cv::Mat的陷阱
cv::Mat指针构造的陷阱原创 2022-12-16 20:50:28 · 1884 阅读 · 0 评论 -
【opencv】求旋转矩形相交面积
可以用于筛选目标检测结果原创 2022-07-14 13:53:54 · 1393 阅读 · 0 评论 -
opencv cmake错误DLL load failed
Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version "2.7")Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version "2.6")Traceback (most recent call last): File "C:\ProgramData\Anaconda3\原创 2021-08-09 20:12:47 · 2849 阅读 · 1 评论 -
cv::Rect的坑宽度或高度小了1
见cv::Rect通过矩形的topleft、bottomright构造函数template<typename _Tp> inlineRect_<_Tp>::Rect_(const Point_<_Tp>& pt1, const Point_<_Tp>& pt2){ x = std::min(pt1.x, pt2.x); y = std::min(pt1.y, pt2.y); width = std::max(pt1原创 2021-06-25 11:34:57 · 429 阅读 · 0 评论 -
2D Transform matrix比较 opencv vs qt vs c#
opencv:warpAffine2×3 transformation matrix[M11M12M13M21M22M23]\left[ \begin{array}{cccc} M_{11} & M_{12} & M_{13} \\ M_{21} & M_{22} & M_{23} \\ \end{array}\right] [M11M21M12M22M13M23][x′y′1]=[M11M原创 2021-06-25 10:25:45 · 261 阅读 · 0 评论 -
关于cv::cuda::GpuMat与PtrStepSz
一般host端用GpuMat,在.cu里定义kernel的caller函数时形参用PtrStepSz(或者PtrStep),kernel函数也可以使用PtrStepSz,从而实现host to device的参数传递PtrStepSz无非就是GpuMat的阉割版,但仔细看GpuMat的源码(sources\modules\core\src\cuda\gpu_mat.cu),只有 ::data是在device端分配的,即通过cudaMallocPitch分配显存,而其它成员如rows, cols, step原创 2021-06-04 13:58:39 · 2628 阅读 · 0 评论 -
为什么opencv的Mat不支持CV_32U类型?
在用不上浮点数时,数值又大于65535的时候,为了提高避免浮点运算性能损失,需要用到uint32或者int32,当然也可以用CV_32S,但为什么不顺便提供一个CV_32U呢?一个并没有解答的FQACV_8U - 8-bit unsigned integers ( 0…255 )CV_8S - 8-bit signed integers ( -128…127 )CV_16U - 16-bit unsigned integers ( 0…65535 )CV_16S - 16-bit signed原创 2021-05-07 20:36:36 · 720 阅读 · 0 评论 -
ipp for opencv license
跟着opencv的license:3-clause BSD License,因为opencv是以静态链接ipp的官方blog有提到:https://opencv.org/opencv-3-0-alpha/Intel corporation gave us another exciting present. A subset of Intel Integrated Performance P...原创 2020-04-26 11:14:29 · 404 阅读 · 0 评论 -
【学习OpenCV】warpAffine函数实现图像旋转
理论http://www.cnblogs.com/wangguchangqing/p/4045150.html翻开任意一本图像处理的书,都会讲到图像的几何变换,这里面包括:仿射变换(affine transformation)、投影变换(projecttive transformation)。前者针对的是平面上的物体位姿变化,如水平/垂直方向位移、旋转、缩小/放大,常见的应用有ORC字原创 2015-11-09 17:19:07 · 18014 阅读 · 2 评论 -
opencv的图像编解码问题
问题1 不同版本的opencv读取的图像数据灰度值不一样?问题2 一个版本的opencv保存的图像,用另一个版本的opencv无法打开?两个问题的原因:不同版本的opencv发布包(从官方下载的dll和lib),采用了不同版本的图像编解码库,导致编解码算法都是不一样的。通过cv::getBuildInformation()可以查看opencv的编译信息。这里汇总了不同版本opencv的编译...原创 2020-04-07 15:53:49 · 524 阅读 · 0 评论 -
【学习OpenCV】Mat、CvMat、IplImage
CvMat、Mat、IplImage之间的转换详解及实例原创 2015-04-14 17:36:49 · 593 阅读 · 0 评论 -
【学习OpenCV】编程笔记:一些需要注意的细节
1、Mat的存储是逐行的存储的,matlab中是原创 2014-10-24 11:56:58 · 2030 阅读 · 0 评论 -
calcHist没有与参数列表匹配的
float range[]={0,255};const float* ranges[] = { range };calcHist(&image, 1, 0, Mat(), hist, 1, &hist_size, &ranges); 改为float range[]={0,255};const float* ranges[] = { range };calcHist原创 2016-04-19 18:41:34 · 2375 阅读 · 0 评论 -
【学习OpenCV】——Mat类详解
官方文档说明:点击打开链接C++的接口,基于opencv 2.4.9Mat类class CV_EXPORTS Mat{public: // ... a lot of methods ... ... /*! includes several bit-fields: - the magic signature -...原创 2014-09-02 10:11:03 · 11938 阅读 · 0 评论 -
opencv不同版本官方安装包说明
官网下载的windows版安装包只编译了某些vc版本,分别如下:opencv 2.4.x支持x86、x64的vc9、vc10、vc11opencv 3.0.0支持x86、x64的vc11、vc12opencv 3.1.0支持x64的vc12、vc14原创 2016-07-03 01:32:11 · 3742 阅读 · 0 评论 -
【学习OpenCV】内存数据输出至xml
xml1、类 cv::FileStorage2、用法bool open(const String& filename, int flags, const String& encoding=String()); //打开xml文件void release(); //关闭xml文件输入、输出方法直接按照iostream的方式3、示例const char* path = ;cosnt c原创 2016-10-13 09:46:10 · 997 阅读 · 0 评论 -
为什么opencv用GPU实现比用CPU实现的慢?
打算通过OpenCV的GPU模块优化现有代码的运行效率,怀抱着美好愿望开始了代码的改写工作。改写的过程并不顺利,遇到了不少问题。例如,gpu模块提供的接口非常坑爹,相当一部分不支持浮点类型(像histogram、integral这类常用的都不支持);又如,遇到阈值判断的地方,就必须传回cpu处理,因为gpu函数都是并行处理的,每改写完一个算法模块,就测试一下运行效率,有的时候是振奋人心,有的时候则原创 2014-12-08 15:36:54 · 21219 阅读 · 8 评论 -
【学习OpenCV】CV库的调用机制
OpenCV说白了就是dll库,众所周知,C++调用dll的方式分隐式和显式两种,而CV用的正是前者。使用CV库,有两个常见步骤:1、编码阶段,在创建新项目的时候,需要添加相应的引用目录、库目录、依赖项;2、发布阶段,需要把exe和dll放在同一个目录下运行。这两点做好了,就确保能够正常使用CV库,其实也无需理会什么dll调用方式;只是,最近在用C#调用C++的模块,里面用了CV库原创 2014-12-03 10:05:07 · 3288 阅读 · 0 评论 -
编译源码 - 【OpenCV 3.x + TBB + IPP + OpenMP + CUDA 6.5(更新cuda 8.0)】- 【win7x64 + vs2012】
1、CMake先安装好TBB,到官网下载,配置系统环境PATH(添加bin目录);勾选“WITH_TBB”、“WITH_IPP”、“WITH_CUDA”、“WITH_OPENMP”,cuda下面还有一个“WITH_FAST_MATH”,是cuda的快速数学库,牺牲精度谋求速度,如果只要求单精度浮点可以选择该项一路configure,遇到红字就设置相应的路径2、原创 2015-09-24 16:58:33 · 6341 阅读 · 0 评论 -
CUDA总结:opencv cuda模块高斯滤波函数分析
基于opencv 3.1相关接口cv::Ptr<cv::cuda::Filter> // 滤波器对象指针,位于opencv2\cudafilters.hppcv::cuda::createGaussianFilter // 创建高斯滤波器对象,位于opencv2\cudafilters.hppcv::cuda::Filter::apply // 滤波器实现,位于原创 2016-12-22 21:56:16 · 5345 阅读 · 0 评论 -
【学习OpenCV】重编译OpenCV
http://www.cnblogs.com/freedomshe/archive/2013/01/11/win7_vs2012_opencv_rebuild.html转载 2014-08-26 14:37:52 · 1993 阅读 · 0 评论 -
CUDA总结:opencv图像金字塔函数分析
基于 opencv 3.1.0相关源码 ..\sources\modules\cudalegacy\src\image_pyramid.cpp ..\sources\modules\cudalegacy\src\cuda\NCVPyramid.cu类 cv::cuda::ImagePyramidImpl金字塔分解,调用层次: cv::cuda::ImagePyramidImpl::Imag原创 2016-12-26 17:46:47 · 1736 阅读 · 0 评论 -
opencv说明文档
链接:http://docs.opencv.org/index.html这个是官方网址,更新到最新的opencv版本离线版的获得:下载opencv源码,解压后再“doc”目录下找到“opencv2refman.pdf”现提供一个2014-11-11发布的opencv 3.0 beta的参考手册:http://pan.baidu.com/s/1sj3Bf8x原创 2015-01-13 13:43:51 · 3196 阅读 · 1 评论 -
【学习OpenCV】Mat::data指针
这是一个很简单的问题,但是如果粗心大意写错了i和j,将会造成数据出错。为什么要用指针访问Mat?在Release模式下的at方法其实效率跟指针是一样的,编码时没要为了效率牺牲可读性而使用指针。但有一种场合必须使用指针,就是编写opencv无关的API,例如写dll函数时,调用方不想涉及任何关于opencv的东西,包括其数据结构,此时就不能采用Mat传递参数了,只能采用指针。因为Mat是C++的原创 2015-09-09 14:13:27 · 52528 阅读 · 3 评论 -
cv::max、cv::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:“::”
引用了Windows.h导致以上异常,因为windows.h中定义了min、max宏解决办法:调用函数加括号 (cv::max)、(cv::min)原创 2017-07-18 10:39:49 · 2039 阅读 · 2 评论 -
解决opencv310 ffmpeg、ippicv_windows_20151201.zip无法下载问题
ffmpeg文件无法下载CMake错误CMake Warning at cmake/OpenCVUtils.cmake:872 (message): Download: Local copy of opencv_ffmpeg.dll has invalid MD5 hash: 3a56b0b26c0d56457a990eb00d87f889 (expected: 89c783eee1c4原创 2016-12-14 10:48:02 · 14235 阅读 · 17 评论 -
Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted
莫名其妙的错误,并没有指针越界将定义为cv::FileStorage的类成员变量删除,就可以了。用的自己编译的opencv3.4.1,库本身没有问题。难道有BUG?原创 2018-09-30 15:10:34 · 746 阅读 · 0 评论 -
【opencv】cv::VideoWriter打开失败
解决办法:将opencv_ffmpegXXXX.dll拷贝至运行目录。缺少了该dll,调用cv::VideoWriter的构造函数或者open函数并不会报错,但返回false原创 2019-04-15 16:08:23 · 7463 阅读 · 0 评论 -
OpenCV——无法解释的外部符号
原因:没有引用相应的库,请检查opencv头文件原创 2015-12-21 19:31:58 · 1095 阅读 · 0 评论 -
OpenCV定位源码的方法
最有效的方法:重新编译opencv源码,然后在编译OpenCV的解决方案(VS2012)中,通过“在文件中查找”所需的函数名,就可以直接定位到该函数的.cpp中原创 2015-12-21 16:16:58 · 1312 阅读 · 0 评论 -
opencv矩阵乘法
对应元素相乘(这不是矩阵乘法):Mat a,b,c;...multiply(a,b,c); //方式一c = a.mul(b); //方式二矩阵乘法:Mat a,b,c;...c = a*b; //方式一gemm(a,b,1,NULL,0,c); //方式二Mat a,b,c;...c = a*b; //方式一gemm(a,b,1,NULL,0,c原创 2015-09-29 17:51:01 · 6788 阅读 · 0 评论