2024-06-01 19:32:31
勇哥注:anaconda 里是不是找不到 opencv-python ?如果是这样的话,只能控制台安装了。如下图,进入anaconda的控制台。输入下面指令进行安装。【安装 opencv-python】pip install opencv-python安装成功后,敲python进入它的控制台。输入 import cv2,如果没报错就证明安装成功了。--------------------- 作者...
2020-11-14 14:28:44
勇哥引言:OpenCV是计算机视觉库,Tensorflow是深度学习框架。
OpenCV包含了大量的图像处理和计算机视觉的算法,但是在机器学习方面明显不足,ML模块只有SVM,MLP,
kNN等有限的几种算法。dnn模块也是调用别的框架。
Tensorflow是专为深度学习而生,可以方便的实现各种深度学习算法。
二者不属于同一领域,做视觉用OpenCV,做深度学习用Tensorflow。或...
2020-08-22 11:46:14
opencv形态学运算opencv形态学运算形态学是生物学中研究动物和植物结构的一个学科分支。数学形态学是以形态为基础对图像进行分析的数学工具。基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。形态学图像处理的数学基础是集合论。1964,Matheron指导下的Serra做岩相学分析。1966年命名Mathematical Morphology。1968年...
2020-07-14 11:02:09
〇.算法效果展示0.1要定位的模板一找到的匹配在有污损情况下找到的匹配0.2要定位的模板2找到的匹配一. 理论部分模板匹配的算法包括基于灰度的匹配,基于特征的匹配,基于组件的匹配,基于相关性的匹配以及局部变形匹配。基于灰度的匹配一般应用在没有缩放和旋转,颜色变化不大的场合。基于特征的匹配一般应用在具有缩放和旋转,颜色变化较大的场合。在模板各个组件有相对位移的情况下,使用基于组件的匹配算法。在图像模...
2020-05-23 10:05:06
我们知道opencv的模板匹配是个鸡肋,效果跟halcon的模板匹配没法比。感谢下面这位大神贡献了实现类似halcon形状匹配的源码。前言用过halcon形状匹配的都知道,这个算子贼好用,随便截一个ROI做模板就可以在搜索图像中匹配到相似的区域,并且能输出搜索图像的位置,匹配尺度,匹配角度。现在我们就要利用opencv在C++的环境下复现这个效果。我们先看下复现的效果图,提升下学习的欲望(要在搜索...
2020-05-20 09:10:16
上一节呢,我们利用openni2获得了彩色图像和深度图像,这一节我们用openni2的转换函数将深度数据转换为三维点云,然后用彩色数据作为纹理将点云用opengl画出来。首先介绍CoordinateConverter::convertDepthToWorld(const VideoStream& depthStream, int depthX, int depthY, DepthPixel...
2020-05-19 16:47:17
新项目是3D重建,最近都在查资料看论文,关于生成3D点云,特征检测,点云匹配,曲面重建等等。有篇知乎写得不错,讲了实现3D重建的相关体系和方法。不过我也是从那里面得到了启发,方法和里面也不太相同,因为里面主要是多幅2D图像三维重建和单目三维重建,他们都没有深度信息而是通过SFM等一些算法计算出景深。而我使用的是RGBD传感器如kinect,xtion。所以我关注与3D特征检测匹配等。大家可以看看微...
2020-05-19 10:58:21
上一篇讲了利用随即一致性来减少错误匹配的情况,这一篇讲一下使用最小二乘多项式平滑方法来减少姿态的抖动问题。因为我们的设备是手持单目,相机在移动的过程中,会产生细微的抖动。虽然EKF或者G2O(通用图优化)会帮我们最小化错误,但是当我们得到正确的最接近真实的姿态后,我们会发现这些姿态是存在细微抖动的。下图为未平滑的相机姿态(Matlab):我们看到有大量的抖动在里面。体现在图像上则是AR物体会有小幅...
2020-05-19 10:47:38
这一节应该是本项目(Feature Tracking and Synchronous Scene Generation with a Single Camera)的最后一节了,实现了两种选取跟踪点和恢复跟踪的方法,顺便把AR物体换成了AR小游戏。首先讲讲跟踪点的选取。之前的文章中我们选取ORB作为特征点检测的办法,然后手动选取N个ORB角点去利用LK光流法跟踪。这样的方法是事先定义好3D点的位置,...
2020-05-19 10:42:03
这段时间把项目的剩余部分全部完成了,包括角点检测改进和恢复追踪。这一节先继续讲利用OpenGL画AR物体。上一节中我们利用SolvePnP得到了相机的姿态(rotation和translation),利用姿态信息我们可以通过加载model_view_matrix来控制opengl里的相机。首先我试了用cmake重新编译with_opengl版的opencv,但是失败了(后来有了成功编译with_o...
2020-05-19 10:38:40
用了ORB那么久,今天第一次将256bit的描述子打印出来,直观看到了match的汉明距离。上代码:#include <iostream>
#include <bitset>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <...
2020-05-19 08:56:16
上一节我们使用张正友相机标定法获得了相机内参,这一节我们使用 PnP (Perspective-n-Point)算法估计相机初始姿态并更新之。推荐3篇我学习的博客:【姿态估计】Pose estimation algorithm 之 Robust Planar Pose (RPP)algorithm,POSIT算法的原理--opencv 3D姿态估计,三维姿态:关于solvePnP与cvPOSIT。...
2020-05-19 08:53:02
上一节《关于OpenCV的那些事——跟踪点选取方式和特征点跟踪恢复》讲了两种跟踪和恢复的方法,这一篇主要讲第一个优化,使用random sample consensus收敛相机姿态。下一篇讲使用最小二乘多项式平滑消除姿态抖动。我们知道在计算相机姿态的时候,opencv中提供了两种函数:solvePnP, solvePnPRansac。 第二个函数即是利用ransac的思想计算更加精确的姿态。 鉴于...
2020-05-19 08:44:13
这一节我们首先介绍下计算机视觉领域中常见的三个坐标系:图像坐标系,相机坐标系,世界坐标系。以及他们之间的关系。然后介绍如何使用张正友相机标定法标定相机。图像坐标系:理想的图像坐标系原点O1和真实的O0有一定的偏差,由此我们建立了等式(1)和(2),可以用矩阵形式(3)表示。相机坐标系(C)和世界坐标系(W):通过相机与图像的投影关系,我们得到了等式(4)和等式(5),可以用矩阵形式(6)表示。我们...
2020-04-20 11:42:53
偶然看到知乎上一位研究机器视觉博士的贴子,都是些经验之谈,蛮好看的。就转过来,大家一起经验一下吧。opencv怎么学作者:wqiasky链接:https://zhuanlan.zhihu.com/p/37823735来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。学习图像处理,掌握一种工具非常重要,这工具是指图像处理库函数。虽然有不少图像函数库,比如halcon、vi...
2020-02-22 17:27:08
前段时间一直在做图像模板匹配。需要对旋转模板进行匹配,并且对速度精度都有较高的要求。OpenCV里面并没有较好的解决方法。cvMatchTemplate( const CvArr* image, constCvArr* templ,CvArr* result,int method )
Image 待搜索图像
Templ 模板图像
Result 匹配结果 用来存放通过以下方法计算出滑动...
2020-02-22 17:04:53
使用opencv的一些内置的算法来实现对图像特征的检测 从图像中提取的到的特征可以用来进行图像的匹配和检索常用的图像特征检测算法Harris:检测角点SIFT:检测斑点SURF:检测斑点FAST:检测角点BRIEF:检测斑点什么是图像特征? 图像特征就是图像中最具有独特性和具有区别性的图像区域.在图像中特征区域主要分布在角点,高密度区域,边缘(边缘可以将图像分成多个区域),斑点(与周围像素差别很...
2020-02-22 16:42:12
图像特征的匹配 通过对图像提取特征后,得到特征点和描述特征点信息的特征向量,在对图像的检索和匹配当中主要通过对描述符[特征向量]的计算来实现,下面主要通过ORB来进行图像特征的提取,使用不同的算法来实现图像的匹配.1.暴力匹配(Brute-Force)2.K-临近匹配3.FLANN匹配(Fast Library for Approximate Nearest Neighbors)www.cs.u...
2020-02-22 16:18:11
霍夫变换检测霍夫变换之直线检测霍夫变换直线检测前提条件-边缘检测已经完成平面空间到极坐标空间的转换(空间域向霍夫域的转换)检测原理两点确定一条直线,通过一点可以确定无数条直线,极坐标直线公式每个点通过角度取不同的值,都能在横坐标为角度值,纵坐标为ρ值的坐标系内确定一条曲线,只要角度值的精细度足够。ρ代表直线到原点的距离。对每个像素采取这样的操作,将会得出很多这样的曲线,这些曲线的交点证明,这些点所...
2020-02-22 11:09:13
OpenCV中常用的角点检测为Harris角点和ShiTomasi角点。以OpenCV源代码文件 .\opencv\sources\samples\cpp\tutorial_code\TrackingMotion\cornerDetector_Demo.cpp为例,主要分析其中的这两种角点检测源代码。角点检测数学原理请参考我之前转载的一篇博客 http://www.cnblogs.com/ridd...
2020-02-03 21:32:24
关于这个问题其实有很多解决帖子:如下参考博客是一个不错的帖子:https://blog.csdn.net/u012814856/article/details/76343540 我遇到的问题的详细log如下:1>qtmain.lib(qtmain_win.obj) : error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900”(display.o...
2020-02-03 16:29:30
模板匹配是机器视觉里面最重要的内容之一,如果没有它,像一些定位的案子就没办法开展了。这个是需要重点研究的话题。演示代码:完全引用下贾志刚老师的代码。从效果上来看,完全没有办法和halcon的模板匹配进行比较,这个真是让人沮丧的结果。难怪群里有些朋友说,OpenCV的模板匹配想要实用,需要自己写算法。#include <opencv2/opencv.hpp>
#include <...
2020-02-03 14:25:01
演示代码:#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace std;
using namespace cv;
Mat src; Mat hsv; Mat hue;
int bins = 12;
void Hist_And_B...
2020-02-03 13:44:50
演示代码:#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace std;
using namespace cv;
string convertToString(double d);
int main(int argc, char*...
2020-02-03 10:16:17
演示代码:#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src, dst;
src = imr...
2020-02-03 09:17:49
这一课讲了两个直方图有关的理论,重点在理论知识。即:什么是直方图、直方图均衡化。勇哥很欣赏贾志刚老师的讲课,理论与实践结合,许多理论都丰富了勇哥对halcon算子的认识。在之前,学习halcon主要精力都是在学习算子怎么用,从来没可能了解它的基础理论,现在贾志刚老师这套opencv的教程则可以反哺halcon的基础理论。演示程序:#include <opencv2/opencv.hpp>...
2020-02-02 20:42:01
演示代码:#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
using namespace std;
int index = 0;
Mat src, dst,mapx,mapy;
void updateMap(void)...
2020-02-02 16:48:58
演示代码:#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src, dst;
src = imr...
2020-02-02 15:52:01
找线找圆是勇哥感兴趣的话题,在机器视觉里面,没有这个功能是没办法干活的。不过,遗憾的是,勇哥按照视频里面做,曝出下面的错误。花了几个小时网上求解,不得解,郁闷!只能暂时先把贴子写下去,有解决办法再回来补充贴子了!补注:2020/2/2勇哥发现错误的原因了,我把HoughLinesP写成了HoughLines,后者是老手用的,所说要自己反变换到平面空间(暂时不懂这个)。演示代码:#include &...
2020-02-02 13:33:28
在使用opencv时发现有个很奇怪的问题,可以编译debug版本不可以编译release版本,总是提示无法打开源文件opencv2/opencv.hpp......一般都是配置不对,如下打开属性管理器配置release版本属性如下 :转载自:https://blog.csdn.net/cindywry/article/details/89846854...