
OpenCV
文章平均质量分 69
byxdaz
十年以上C/VC++开发经验。熟悉网络编程、数据库编程、数字图像处理与识别,熟悉软件工程和项目管理,熟悉linux C/C++开发。
展开
-
Eigen与OpenCV矩阵操作全面对比:最大值、最小值、平均值
对于纯粹的数值计算,Eigen通常更简洁高效;对于图像处理任务,OpenCV提供更完整的解决方案。在实际项目中,两者可以互补使用。OpenCV的位置返回是Point结构,Eigen是分离的行列索引。可以同时使用两个库,用Eigen做数值计算,OpenCV做图像处理。OpenCV一次调用可同时获取两个极值和位置。OpenCV的mean()自动处理多通道数据。Eigen的mean()只适用于单通道矩阵。Eigen需要分别调用两个函数获取极值。对于多通道数据,Eigen需要额外处理。处理图像数据(特别是多通道)原创 2025-05-18 13:55:27 · 688 阅读 · 0 评论 -
OpenCV CPU性能优化
OpenCV 在 CPU 上的性能优化涉及多个层次,从算法选择到指令级优化。原创 2025-05-08 08:53:45 · 860 阅读 · 0 评论 -
OpenCV 伪彩色处理
i < 256;i++) {// 自定义RGB映射规则2*i : 255,return lut;// 创建自定义LUT// 应用LUTreturn 0;原创 2025-04-11 21:18:18 · 546 阅读 · 0 评论 -
小波变换C++实现方式
/ 一维小波分解i < len/2;i++) {k++) {// 周期延拓// 二维小波分解(单层)// 对行处理i++) {// 对列处理j++) {支持多种小波族:Daubechies、Symlets、Coiflets、Biorthogonal等提供离散小波变换(DWT)和连续小波变换(CWT)支持一维、二维和三维信号变换包含小波包变换功能开源且跨平台。原创 2025-03-30 11:42:23 · 964 阅读 · 0 评论 -
傅里叶变换C++实现方式
傅里叶变换(Fourier Transform)是一种将信号从时域转换到频域的数学工具,广泛应用于信号处理、图像处理、通信等领域。在 C++ 中实现傅里叶变换(Fourier Transform),可以使用 FFT(快速傅里叶变换) 算法来提高计算效率。OpenCV 提供了高效的cv::dft()函数来计算离散傅里叶变换(DFT)。原创 2025-03-30 10:05:42 · 501 阅读 · 0 评论 -
OpenCV中直线、曲线和圆的拟合方法
DIST_HUBER:鲁棒性较强,可抑制部分异常点。DIST_L2:对噪声敏感,适合无异常值数据。原创 2025-03-21 13:08:00 · 660 阅读 · 0 评论 -
OpenCV中距离公式
二维空间三维空间。原创 2025-03-21 11:16:09 · 566 阅读 · 0 评论 -
OpenCV中的矩阵操作
OpenCV中的矩阵操作主要围绕Mat类展开,涵盖创建、访问、运算及变换等。原创 2025-03-21 09:43:48 · 746 阅读 · 0 评论 -
OpenCV-Contrib常用扩展模块
模块 模块 模块 模块 模块 模块 模块 模块 模块原创 2025-03-19 15:51:28 · 331 阅读 · 0 评论 -
OpenCV特征提取与深度学习CNN特征提取差异
。原创 2025-03-14 11:51:55 · 350 阅读 · 0 评论 -
OpenCV实现图像特征提取与匹配
使用 RANSAC 几何验证 进一步优化匹配(参考 SIFT/SURF 代码中的 findHomography 步骤)。drawKeypoints():DRAW_RICH_KEYPOINTS 参数绘制关键点的尺度圆和方向线。SIFT::create():创建 SIFT 检测器对象,可设置参数(如特征点数量、对比度阈值等)。detectAndCompute():单函数完成关键点检测与描述子计算,提升效率。drawMatches() 可调整参数显示匹配连线颜色/粗细。原创 2025-03-14 11:39:24 · 1475 阅读 · 0 评论 -
OpenCV实现图像分割与无缝合并
设置setRegistrationResol(0.6)降低分辨率提升速度。5)图像融合:将图像按照变换矩阵进行拼接,并进行融合处理以消除拼接痕迹。启用setExposureCompensator补偿光照差异。4)计算变换矩阵:根据匹配的特征点计算图像之间的变换矩阵。2)特征点检测:在每张图像中检测出关键点(特征点)。3)特征点匹配:在不同图像之间匹配这些特征点。用ORB替代SIFT提升3倍速度。应用场景:细胞计数、矿石分析。1)图像读取:读取需要拼接的图像。处理光照不均图像。原创 2025-03-10 17:31:59 · 983 阅读 · 0 评论 -
OpenCV实现视频背景提取
OpenCV 提供了多种背景减除算法(MOG、MOG2、KNN),其中 MOG(Mixture of Gaussians)和 MOG2 是最常用的两种方法。在计算机视觉领域,背景减除(Background Subtraction)是一种常用的技术,用于从视频序列中提取前景对象。背景减除的核心思想是通过建模背景,然后将当前帧与背景模型进行比较,从而分离出前景对象。MOG2/KNN:减小history值(最低100)。跳帧处理:每2帧处理1帧。背景残留前景物体。背景更新延迟严重。原创 2025-03-10 16:59:07 · 489 阅读 · 0 评论 -
基于OpenCV GPU的YOLOv5图片检测
3)、调用cv::dnn::Net类中setPreferableBackend和setPreferableTarget方法。2)、cv::dnn::readNetFromONNX加载yolov5 onnx模型文件。1)、cv::cuda::setDevice设置使用gpu id。1、编译好OpenCV GPU版本库。2、调用DNN模块方法。原创 2024-09-26 21:24:47 · 641 阅读 · 0 评论 -
opencv4.5.5 GPU版本编译
找到编译选项OPENCV_EXTRA_MODULES_PATH,将Value设置为opencv_contrib4.5.5/modules,然后点击configure。BUILD_CUDA_STUBS、OPENCV_DNN_CUDA、WITH_CUDA、OPENCV_ENABLE_NONFREE、build_opencv_world打勾。3、没勾选"BUILD_opencv_world",所以生成了多个库文件,方便打包时缩小体积。3、配置过程和编译opencv的一样,失败下载的文件要补上去。原创 2024-09-23 22:41:19 · 1406 阅读 · 0 评论 -
基于OpenCV的YOLOv5图片检测
1)、readNetFromONNX加载onnx模型出错。= "asymmetric",这个错误信息表明你在使用OpenCV的readNetFromONNX函数加载ONNX模型时,模型中的某些节点的插值模式(interp_mode)不是"asymmetric"。解决方法:det_output.row(i).colRange(5, num_class);使用opencv版本4.5.3或以上,本文使用的opencv4.6.0。解决方法:使用opencv版本4.5.3或以上,本文使用的opencv4.6.0。原创 2024-09-20 01:52:34 · 901 阅读 · 0 评论 -
OpenCV putText显示中文
二、依赖freetype字体库的方法(可以在linux和window下使用)原创 2023-04-16 12:23:37 · 1439 阅读 · 0 评论 -
OpenCV VideoWriter使用方法
1、打开视频输出cv::VideoWriter有两个构造函数,一个是默认构造函数,仅仅创建一个未初始化的VideoWriter对象用于之后的打开操作;写视频时需要设置一系列参数,包括:文件名、编解码器、帧率、宽度和高度等,还可以志峰图像是否彩色,isColor设置为false,可以传入灰度图。编解码器使用四个字符表示,可以是CV_FOURCC('M','J','P','G')、CV_FOURCC('X,'V','I','D')、CV_FOURCC('D','I','V','X')。原创 2023-04-15 13:15:15 · 8384 阅读 · 0 评论 -
OpenCV VideoCapture使用方法(视频文件、摄像头、网络视频文件)
cv::VideoCapture既支持视频文件的读取,也支持从摄像机中视频的读取。cv::VideoCapture对象的创建方式有以下三种:方式一:const string& filename, // 输入视频文件路径名方式二:int device // 输入摄像机视频捕捉设备 id从摄像机中读取视频,这种情况下,我们会给出一个标识符,用于表示我们想要访问的摄像机,及其与操作系统的握手方式。原创 2023-04-15 11:48:03 · 30497 阅读 · 3 评论 -
opencv Mat和Dlib变量类型转换
Mat转matrix<dlib::rgb_pixel>cv::Mat frame = cv::imread("test.jpg");matrix<dlib::rgb_pixel> img;assign_image(img,cv_image<rgb_pixel>(frame));array2d<dlib::bgr_pixel>转Mat方法一:dlib::array2d<dlib::bgr_pixel> img_bgr;//使用d原创 2020-06-13 14:10:25 · 1118 阅读 · 0 评论 -
opencv 图像类型(Mat、图像字节流、Bitmap、BITMAPINFO、CxImage、AVFrame)之间的转换
一、Mat与IplimageMat<-----> Iplimage :直接赋值IplImage *iplImg = cvLoadImage("greatwave.jpg", 1);Mat mtx(iplImg); // IplImage* ->Mat 共享数据// or : Mat mtx = iplImg;cvReleaseImage(&iplImg);...原创 2019-11-17 13:27:56 · 8487 阅读 · 1 评论 -
opencv图像拼接
Opencv Sift和Surf特征实现图像无缝拼接生成全景图像https://chenzhengyi.blog.csdn.net/article/details/90147481Opencv 使用Stitcher类图像拼接生成全景图像https://blog.csdn.net/dcrmg/article/details/52653366...转载 2019-05-12 23:48:43 · 1920 阅读 · 0 评论 -
RANSAC算法及其消除错配应用
RANSAC算法及其消除错配应用转载 2010-08-11 10:58:00 · 13974 阅读 · 6 评论 -
图像亮度、对比度调节
OpenCV 图像亮度、对比度调节转载 2010-07-30 19:47:00 · 2325 阅读 · 3 评论 -
采用金字塔方法进行图像分割
opencv 采用金字塔方法进行图像分割转载 2010-07-30 19:43:00 · 7636 阅读 · 0 评论 -
OpenCV形态学操作
形态学操作 OpenCV原创 2010-07-30 10:23:00 · 21756 阅读 · 5 评论 -
opencv实现二值图像细化的算法
opencv 图像细化转载 2010-06-02 16:40:00 · 29384 阅读 · 22 评论 -
在OpenCV中实现判断离散点
判断离散点 opencv原创 2010-07-22 11:36:00 · 5677 阅读 · 2 评论 -
OpenCV学习笔记
一、OpenCV概述与功能介绍OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。 OpenCV 对非商业应用和商业应用都是免费(FREE)的。(细节参考 license)。代码下载原创 2009-11-30 23:20:00 · 10989 阅读 · 5 评论 -
如何用OpenCV训练自己的分类器
http://hi.baidu.com/andyzcj/blog/item/3b9575fc63c3201f09244d9a.html最近要做一个性别识别的项目,在人脸检测与五官定位上我采用OPENCV的haartraining进行定位,这里介绍下这两天我学习的如何用opencv训练自己的分类器。在这两天的学习里,我遇到了不少问题,不过我遇到了几个好心的大侠帮我解决了不少问题,特别是无忌,在这转载 2009-11-30 17:35:00 · 24746 阅读 · 4 评论 -
opencv实现连通域
在本文中使用图像连通域统计使用opencv中的cvFloodFill方法,但是在cvFloodFill方法中CvConnectedComp参数无法返回具体点坐标位置信息,找了些资料、给CvSeq分配空间但是还是contour内容没有值,估计是OPENCV2.00版本不支持。如果想获取点坐标信息有两种方法:一是通过源代码改写cvFloodFill函数来返回点坐标信息;二是cvFloodF...原创 2010-08-12 18:03:00 · 11809 阅读 · 4 评论 -
CxImage转换成IplImage
CxImage IplImage原创 2010-08-12 18:11:00 · 4041 阅读 · 3 评论 -
双目相机标定以及立体测距原理及OpenCV实现
转载双目相机标定以及立体测距原理及OpenCV实现http://blog.csdn.net/dcrmg/article/details/52986522?locationNum=15&fps=1单目相机标定的目标是获取相机的内参和外参,内参(1/dx,1/dy,Cx,Cy,f)表征了相机的内部结构参数,外参是相机的旋转矩阵R和平移向量t。内参中dx和dy是相机单个感光单元芯片的长...转载 2019-05-12 23:45:18 · 7770 阅读 · 1 评论 -
opencv调用Caffe、TensorFlow、Torch训练好的模型
转载:https://blog.csdn.net/shanglianlm/article/details/80030569OpenCV 3.3版本发布,对深度学习(dnn模块)提供了更好的支持,dnn模块目前支持Caffe、TensorFlow、Torch、PyTorch等深度学习框架。#1 加载模型成网络###1-1 调用caffe模型##核心代码:String modelDes...转载 2019-05-15 23:58:16 · 2561 阅读 · 0 评论 -
在opencv3中的机器学习算法
转载:https://www.cnblogs.com/denny402/p/5032232.html在opencv3.0中,提供了一个ml.cpp的文件,这里面全是机器学习的算法,共提供了这么几种:1、正态贝叶斯:normal Bayessian classifier 我已在另外一篇博文中介绍过:在opencv3中实现机器学习之:利用正态贝叶斯分类2、K最近邻:k nearest...转载 2019-05-15 23:45:11 · 2227 阅读 · 0 评论 -
Opencv3.2各个模块功能详细简介(包括与Opencv2.4的区别)
转载:https://blog.csdn.net/zmdsjtu/article/details/54924727Contrib模块见 : 地址感谢之前一个博友的留言说工程实际中Opencv各个模块封装成一个world的dll会太过冗余,所以今天来把几个主要的功能模块的主要功能整理下,方便之后的拆分调用。如果对于某些模块有疑问,欢迎留言交流,之后或可以重点再去补充文章中某些部分的内容。...转载 2019-05-15 23:17:03 · 1377 阅读 · 1 评论 -
Lowe’s算法
一、Lower's算法Lowe’s算法:为了进一步筛选匹配点,来获取优秀的匹配点,这就是所谓的“去粗取精”。一般会采用Lowe’s算法来进一步获取优秀匹配点。为了排除因为图像遮挡和背景混乱而产生的无匹配关系的关键点,SIFT的作者Lowe提出了比较最近邻距离与次近邻距离的SIFT匹配方式:取一幅图像中的一个SIFT关键点,并找出其与另一幅图像中欧式距离最近的前两个关键点,在这两个关键点...转载 2019-05-15 23:05:37 · 7495 阅读 · 3 评论 -
图像矫正技术深入探讨
转载:https://www.cnblogs.com/skyfsm/category/1000207.html刚进入实验室导师就交给我一个任务,就是让我设计算法给图像进行矫正。哎呀,我不太会图像这块啊,不过还是接下来了,硬着头皮开干吧!那什么是图像的矫正呢?举个例子就好明白了。我的好朋友小明给我拍了这几张照片,因为他的拍照技术不咋地,照片都拍得歪歪扭扭的,比如下面这些照片:人民币...转载 2019-05-15 22:47:43 · 2738 阅读 · 0 评论 -
SIFT、SURF、ORB、HOG、LBP、HAAR特征的原理概述及OpenCV代码实现
什么叫特征检测?就是检测图像中目标的特征呗,所谓特征,不管你怎么旋转目标,离目标远近,它的特征都应不变才对,这两个特性称为叫旋转不变性和尺度不变性。当然还有其它特征,如光照不一样,也不应该变化嘛,只是旋转不变性和尺度不变性是最基本的两个要求。对特征的描述有很多种方法和算子,常见的有SIFT特征描述算子、SURF特征描述算子、ORB特征描述算子、HOG特征描述、LBP特征描述以及Harr特征描述...转载 2019-05-13 23:43:54 · 3797 阅读 · 0 评论 -
调用opencv3.x 库,在MFC中显示图片
调用opencv3.x 库,在MFC中显示图片使用opencv和MFC显示图片的方法大致分为以下几种:1:将opencv的显示对话框嵌入到MFC窗口。2:使用CvvImage类显示图片。3:将opencv图像Mat结构转换为BITMAPINFO结构,再通过dc显示图像。方法一:方法是将opencv的显示窗口与MFC的控件链接起来,效果是opencv的窗口恰好覆盖在控件上。b...原创 2019-03-03 17:54:13 · 3116 阅读 · 3 评论