计算机视觉
文章平均质量分 58
计算机视觉文章,包括Opencv库
绿竹巷人
不想做算法工程师的算法工程师
展开
-
一文搞懂傅里叶级数与变换
这篇文章的目标:以最简单易懂的方式,让大家学会傅里叶变换!为什么要写一篇关于傅里叶变换相关知识的文章呢。有两个原因:一、这个知识很有趣,可以理解它是一件炫酷的事情。在工作中,一次分享会同事站在很高的角度,重新分析了傅里叶变换。二、曾经的经历与傅里叶相关,之前有一年的宿舍号码是553,数字英文是FiveFiveThree,而FFT正是快速傅里叶变换的缩写。学生时代一次短短的创业尝试,团队的名字就命名为了FFT。这让我对傅里叶变换有了一种特殊的情感。原创 2022-11-25 11:29:57 · 3867 阅读 · 0 评论 -
Opencv画椭圆及扇形
根据参数不同,自行调整画椭圆及扇形原创 2022-08-08 18:36:12 · 1766 阅读 · 5 评论 -
Opencv按键暂停
Opencv按键暂停原创 2022-07-26 16:13:48 · 495 阅读 · 0 评论 -
Opencv cv::Mat利用at求像素点值
Opencv cv::Mat利用at求像素点值原创 2022-06-21 10:19:55 · 1519 阅读 · 0 评论 -
Opencv画出斜矩形
Opencv画出斜矩形原创 2022-06-21 10:04:40 · 1097 阅读 · 0 评论 -
C++点云区域生长利用PCL库
描述利用PCL库进行点云区域生长代码代码中的部分参数,还是要根据你的点云数据的实际情况,进行更改的。举例子,代码中有这样两句话pass.setFilterFieldName ("z"); pass.setFilterLimits (-1000, 1000); 按照相机的z轴方向过滤点,由于我的点单位是mm,所以是-1米到1米,如果你的点云单位是米,上面的参数很显然应该是-1和1完整的main.cpp#include <iostream>//点云需要的头文件#原创 2020-12-21 14:57:50 · 789 阅读 · 3 评论 -
PCL保存点云为.ply格式
描述使用PCL库保存点云数据为.ply格式代码#include <iostream>//点云需要的头文件#include <pcl/point_types.h>#include <pcl/io/ply_io.h>#include <pcl/visualization/pcl_visualizer.h>void drawPointCloud(pcl::PointCloud<pcl::PointXYZ>::Ptr cloud, st原创 2020-12-11 19:45:08 · 3978 阅读 · 4 评论 -
读取.ply格式点云并显示
描述使用PCL库,读取.ply格式点云数据并进行显示代码#include <iostream>//点云需要的头文件#include <pcl/point_types.h>#include <pcl/io/ply_io.h>#include <pcl/visualization/pcl_visualizer.h>void drawPointCloud(pcl::PointCloud<pcl::PointXYZ>::Ptr clou原创 2020-12-11 19:33:10 · 2504 阅读 · 0 评论 -
xyz数据生成PointXYZ格式点云
描述假设我们正在使用某款相机,仅仅能读出它每一帧点云数据的xyz值,但是无法使用接口让数据自动记录成想要的格式,可以看看这篇博客放在指定位置,调用下面的接口代码,就能生成想要的点云数据了代码pcl::PointCloud<pcl::PointXYZ>::Ptr readPointCloud_camera(int width, int height, std::vector<int> x, std::vector<int> y, std::vector<int原创 2020-12-11 17:12:54 · 3755 阅读 · 0 评论 -
点云相机手眼标定代码——利用PCL库的ICP算法完成手眼标定
描述我有一个点云相机,仅仅能输出点云数据,它要被装到一个机械臂上现在我需要进行手眼标定,如何完成呢? 本篇求出的手眼矩阵,是相机坐标系在手(机械臂末端或者工具末端)坐标系下的位姿。原理简单来说,2D相机通过张正友标定法,是提取黑白棋盘格的角点,来得到相机位姿变换的。点云相机呢,就需要利用它的点云数据了。原理用几句话说,就是: 在机械臂上安装好相机(需绝对固定),使用代码或者示教器变换多个位姿,让相机对着一个物体进行拍照。我们通过这几帧点云之间的变换关系,及采集这几帧点云时的机械臂位姿,就能得到原创 2020-12-11 16:22:11 · 7972 阅读 · 26 评论 -
C++CamShift跟踪——加载一段视频并跟踪指定区域
描述有一段视频,通过离线的方式我知道要跟踪的部分在哪里。可以离线将要跟踪的部分的像素位置,输入到代码中,则播放视频时能够一直跟踪这个物体代码// Tracks the selected object using CAMShift algorithm#include "opencv2/video/tracking.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include原创 2020-12-10 16:07:52 · 257 阅读 · 0 评论 -
Camshift算法的C++实现
描述Camshift算法可以用来在视频或者摄像头开启时,跟踪某个固定的物体。原理:求待跟踪目标的颜色直方图模型,将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置。不足:受光照影响大,精度不足代码摄像头+鼠标框出物体下面这段代码,会打开摄像头,需要用鼠标框出要跟踪的物体,源代码地址在 https://github.com/prateekvjoshi/Object-Tracker-CAM原创 2020-10-06 20:02:06 · 734 阅读 · 2 评论 -
use of undeclared identifier ‘CV_EVENT_LBUTTONDOWN‘; did you mean ‘EVENT_LBUTTONDOWN‘?
描述github上找到了一个Opencv3版本的代码,clone下来后编译提示错误终端提示use of undeclared identifier 'CV_EVENT_LBUTTONDOWN'; did you mean 'EVENT_LBUTTONDOWN'?类似的提示还有use of undeclared identifier 'CV_EVENT_LBUTTONUP'; did you mean 'EVENT_LBUTTONUP'?use of undeclared identifier原创 2020-10-04 17:24:31 · 1578 阅读 · 0 评论 -
Opencv图像拼接
描述两张图片,如何拼成一张图片代码主要有两种方法我这里举个例子,假设我有一张图片,这张图片左边部分是a,右面部分是b我想要的新图片,想要左边是原图像的b,右边是原图像的a,而a和b的尺寸和信息都不变,我的代码应该怎么写我先贴一段模板吧,下面会有实际的例子讲解cv::Mat inputImage;cv::Mat outputImage;// 选定第一帧图要放的位置:0, 0, width, heightCvRect rect = cvRect(0, 0, inputImage.cols,原创 2020-08-13 11:06:07 · 616 阅读 · 0 评论 -
Opencv读取写入视频
描述调用opencv库来读取写入视频语言:C++视频格式:MP4代码1. 读取视频#include <iostream>#include <cstdlib>#include <ctime>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc.hpp>int main(){原创 2020-08-13 10:43:47 · 1604 阅读 · 0 评论 -
opencv4找不到opencv2/core/core.hpp: No such file or directory
描述我有一段程序,在Ubuntu16.04系统下使用的是opencv3,后将opencv版本替换成opencv4工程使用QT编译,编译提示了错误“opencv2/core/core.hpp”: No such file or directory解决办法实际上你应该在你的电脑中,准确的找到opencv4的安装位置我的解决办法是在QT工程的XXX.pro文件中,添加头文件路径INCLUDEPATH += /usr/local/include/opencv4问题解决...原创 2020-07-15 16:05:19 · 5895 阅读 · 2 评论 -
C++opencv图像裁剪、等比例放大缩小、复制到指定区域
描述C++使用opencv时,对imshow图像进行的常见处理,包括图像剪裁、等比例压缩等(待继续补充)代码1. 剪裁int matrix_size = 3000;cv::Mat image(matrix_size, matrix_size, CV_8UC3, cv::Scalar(255, 255, 255)); // 原图cv::Mat image_part = image(cv::Rect(1400,1100,1000,1800)); // 裁剪后的图cv::imshow("part o原创 2020-07-05 16:58:58 · 20297 阅读 · 5 评论 -
Ubuntu下Cmake工程指定依赖库的搜索路径
描述Cmake工程指定依赖库的搜索路径,比如系统中有两个opencv版本,分别安装在不同路径下比如,一个在 /usr/local下,另外一个在/home下,两个版本不同那么如何使你的Cmake工程,使用指定opencv版本呢方案在CMakeLists.txt中这么写set(xxx_DIR "xxxConfig.cmake文件所在的路径")举例如果我想使用安装在某路径下的openc...原创 2020-05-06 22:49:05 · 3885 阅读 · 0 评论 -
QT配置加载头文件及库
描述还是由于前一阵的项目,关于QT的一个小代码我仍然需要长期维护。因此在这里记录一下,如何配置一个新的外部库包括:如何添加头文件如何链接静态库我的当前电脑是Mac,但在Ubuntu系统下代码是通用的,只需要替换相应路径即可代码QT的写法还是有自己特点的,切勿自己去随意更改QT配置我的项目是这么写的,这一节需要结合自己情况QT += core guigreate...原创 2020-04-21 14:55:10 · 2340 阅读 · 0 评论 -
直线拟合(Ransac + Opencv)
直线拟合(Ransac+Opencv)Ransac原理Ransac直线拟合原理(待补充)代码出现的BugOpenCV Error: Assertion failed (npoints2 >= 0 || npoints3 >= 0) in fitLine原因代码错误表明问题出现在fitLine(),下面是Opencv提供的源码void cv::fitLine( Input...原创 2019-12-10 15:20:15 · 3463 阅读 · 0 评论 -
Mac下python运行报“No module named 'cv2'”
问题描述Mac系统下写了一段python代码,运行.py文件时报错,报错内容No module named 'cv2'问题解释我先说一下我电脑的配置Mac自己是自带python的,python版本2.7我装了Anaconda,所以python版本我有的是python3.7.4我装了opencv4.1.2问题出现在:我在pycharm编写的这个程序,运行的目测是python...原创 2020-03-13 10:51:55 · 1530 阅读 · 0 评论 -
Mac下QT配置Opencv库
需求Mac OS系统下QT配置opencv首先你的电脑应该已经装了QT、opencv,并且两者版本是适应的(挺重要的)怎么判断适不适应,自己大概看一下两者的版本更新时间吧我的版本: QT5.11.1 Opencv 4.1.2解决方案如果你不链接Opencv库,并且你的代码中有关于opencv的代码时,点击QT的绿色三角(编译与链接),是没有办法通过的报错内容为:-1: error:...原创 2020-03-12 16:13:26 · 453 阅读 · 0 评论 -
Opencv图片放大缩小移动操作的按钮实现
需求读取一张图片,能够通过按钮进行放大、缩小等操作。这篇博客是我网上搜索了一下,参考了NQian的文章,这里记录下来代码两个头文件mainwindow.hw.h三个源文件main.cppmainwindow.cppw.cppw.h 和 w.cpp 是核心功能实现w.h#ifndef W_H#define W_H#include <QWidget>...原创 2020-03-12 15:56:45 · 1109 阅读 · 0 评论 -
Opencv图像翻转
需求图像翻转代码cv::Mat image = cv::imread("/Users/admin/Desktop/Lena.jpg");cv::Mat image_fliped;// >0: 沿y轴翻转, 0: 沿x轴翻转, <0: x、y轴同时翻转cv::flip(image, image_fliped, -1);cv::imshow("lenna", image);...原创 2020-03-12 15:38:42 · 137 阅读 · 0 评论 -
Opencv给Mat加坐标轴
需求描述最近在编写一个工具,其中有一个子功能,需要给cv::Mat格式的图片加上坐标轴有一个格式为cv::Mat image的图片,这个image有可能是图片,也有可能是一些二维的点画在了image上。假设他们有坐标的话,怎么画出一个带坐标轴的图opencv官网其实提供了一个添加坐标轴的类,Plot2d,我看了一下效果不太满意,以后有机会再分析一下。代码更倾向于自己写一个好用的。好用的,...原创 2020-03-10 21:41:40 · 2281 阅读 · 9 评论 -
Opencv打开并显示图片
上代码#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <iostream>#include <string>#include "stdlib.h"using namespace ...原创 2020-02-05 17:08:51 · 2005 阅读 · 3 评论 -
If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config
错误返回terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(3.4.3) /home/chen/Downloads/opencv-3.4.3/modules/highgui/src/window.cpp :632: error: (-2:Unspecified error) The ...原创 2020-01-09 15:05:59 · 17375 阅读 · 21 评论 -
ubuntu16.04 Opencv安装与卸载
1. 下载Opencv官网下载Opencv,版本请自行选择,注意要选择sources版本Opencv官网链接2. 解压zip包unzip opencv-3.4.3.zipcd opencv-3.4.33. 安装依赖库sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev li...原创 2020-01-03 17:18:02 · 319 阅读 · 0 评论