opencv
六月的翅膀
人生本是无根草,醉了何必问家乡
展开
-
C++:关于圆形鱼眼半全景图转为等距圆柱投影图
之前记录了立方体和360全景之间的转换,这次记录下鱼眼图与360全景图之间的转换。这里的360全景图其实指的是等距圆柱投影图。原创 2024-05-11 17:09:59 · 325 阅读 · 0 评论 -
OpenCV/C++:点线面相关计算(二)
接续,继续更新OpenCV/C++:点线面相关计算_线面相交的点 代码计算-CSDN博客OpenCV处理点线面的常用操作_线面相交的点 代码计算。原创 2024-02-05 17:52:45 · 651 阅读 · 0 评论 -
旋转矩阵与欧拉角
旋转矩阵与欧拉角原创 2023-04-18 23:03:50 · 1089 阅读 · 1 评论 -
Win10+VS2019安装vcpkg
windows+VS2019安装vcpkg原创 2023-04-17 13:43:13 · 2785 阅读 · 0 评论 -
Windows10+Cmake+VS2019编译opencv
win10 cmake vs2019 opencv contrib原创 2023-04-13 16:08:48 · 857 阅读 · 0 评论 -
OpenCV/C++:点线面相关计算
OpenCV处理点线面的常用操作原创 2022-07-05 23:44:46 · 2148 阅读 · 1 评论 -
图像处理/opencv/C++:图像马赛克
马赛克操作就是在指定大小的范围内,图像的颜色取成相同的。int masaike(unsigned char *srcData, int width, int height, int stride, int mode){ //@ stride:每个马赛克块的大小 //@ mode: 未使用参数 int ret = 0; int i, j, gray, offset; //offset = stride - width * 3;//这个参数没有用到 //有些情况下会对图像的宽度保持为4原创 2022-04-30 05:30:07 · 4219 阅读 · 0 评论 -
OpenCV:透视变换/仿射变换
//@ 对棋盘格原图透视变换 //@ 将棋盘格图像变换到屏幕大小,但是周边还是会有边框,图像中的屏幕是没有铺满的,误差 Mat chessboard_warp; cv::warpPerspective(model_var.chessboard_image, chessboard_warp, model_var.warpMatrix, cv::Size(model_var.SCREEN_WIDTH, model_var.SCREEN_HEIGHT), cv::INTER_LINEAR.原创 2022-04-25 15:03:36 · 4952 阅读 · 0 评论 -
图像处理/opencv/C++:三种灰度化
#include<iostream>#include<Windows.h>#include<opencv2\opencv.hpp>using namespace std;using namespace cv;#define MIN2(a, b) ((a) < (b) ? (a) : (b))#define MAX2(a, b) ((a) > (b) ? (a) : (b))#define CLIP3(x, a, b) MIN2(MAX2(a.原创 2022-04-24 00:33:14 · 1027 阅读 · 1 评论 -
OpenCV/C++:Mat与二维指针相互转换
对于一个Mat,有时需要将其转为二维指针传递int** mat2ptrarray(Mat& pic){ int** data; data = new int* [pic.rows]; for (int i = 0; i < pic.rows; i++) { data[i] = new int[pic.cols]; for (int j = 0; j < pic.cols; j++) {原创 2022-04-22 09:07:58 · 1824 阅读 · 0 评论 -
图像处理:dither
#include<iostream>#include<opencv2\opencv.hpp>using namespace std;using namespace cv;int main() { Mat img_gray0 = imread("xjj.jpg", IMREAD_GRAYSCALE); int img_h, img_w; img_h = img_gray0.size().height; img_w = img_gray0.size().width;.原创 2022-04-20 11:41:47 · 4618 阅读 · 0 评论 -
OpenCV:Mat数据类型/16to8bit/RECT/画线填充
Mat类型与数据类型对应关系:Unsigned 8bits uchar 0~255Mat: CV_8UC1, CV_8UC2, CV_8UC3, CV_8UC4Signed 8bits char -128~127Mat: CV_8SC1,CV_8SC2,CV_8SC3,CV_8SC4Unsigned 16bits ushort 0~65535Mat: CV_16UC1,CV_16UC2,CV_16UC3,CV_16UC4Signed 16bits short -32768~32767原创 2022-04-20 10:33:38 · 1308 阅读 · 0 评论 -
C++:_ASSERTE(__acrt_first_block == header)
这个问题有不同的原因,挺多人是因为使用OpenCV时某些函数时变量的原因或者是string类型的原因,我的这个问题都不是,将代码生成的运行库由“多线程调试MTd”切换为“多线程调试DLL(MDd)”可以解决参考:C++ 关于“Expression: __acrt_first_block == header”的一点总结_hellokandy的博客-CSDN博客__acrt_first_block == header错误的一种办法_hansen_fu的博客-CSDN...原创 2022-04-08 11:10:44 · 3562 阅读 · 0 评论 -
C++&OpenCV:三角形插值、线面的交点
直线方程已知直线上一点和直线的方向向量或者法向量,求直线方程直线和平面的交点已知直线一点L和直线的方向向量l、平面上一点P和平面的法向量p,求直线与平面的交点三角形线性插值验证一下上面两种插值方法的不同#include <iostream>#include <time.h>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int.原创 2022-02-11 17:45:48 · 3230 阅读 · 0 评论 -
C++/OpenCV:将数据保存到xml、yaml / 从xml、yaml读取数据
#include <iostream>#include "opencv2/opencv.hpp"using namespace std;#define WRITE_OR_READint main() {//===========将数据写入到xml文件中================#ifdef WRITE_OR_READ string name = "insomnia"; int age = 18; float height = 1.83; .原创 2022-01-26 17:31:27 · 4427 阅读 · 0 评论 -
QT配置OpenCV(二):成功
前面使用MinGW在QT下配置OpenCV,不知是版本问题还是其他问题,放弃了,因为我不想重新装QT,太浪费生命了。这次使用快乐配置OpenCV的方法。先正常在QT中新建一个项目然后右键项目名,添加库选择外部库选择库文件下一步之后,会在pro文件中添加如下信息还要注意下,我的OpenCV是64位的,这里选择64,release或debug都行,pro中的配置信息会自动切换然后,就可以运行了。真的是节约生命节约头...原创 2021-12-15 10:52:50 · 4359 阅读 · 0 评论 -
QT中配置OpenCV
CMake编译OpenCV过程中一直出错:CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.解决方案如下:将CMAKE_MAKE_PROGRAM项后面的路径设置为Qt安装路径下的路径如下所示:MinGW/.原创 2021-12-15 10:35:32 · 5554 阅读 · 0 评论 -
已知贝塞尔曲线上的点求控制点
#include <opencv2/opencv.hpp>#include <iostream>#include <vector>#include <cmath>using namespace std;using namespace cv;vector<Point2d> orig_point;vector<Point2d> control_point;double u1 = 0.3;//这两个参数取决于中间两...原创 2021-07-08 18:16:53 · 6584 阅读 · 13 评论 -
C++/OpenCV:同颜色检测提取
看到这个老哥写了一个类,但是没有demo,就使用这个类写了个例子【OpenCV】OpenCV创建颜色识别类-class ColorDetector_Taily老段的专栏-CSDN博客头文件 ColorDetector.h#pragma once#ifndef COLORDETECTOR_H_#define COLORDETECTOR_H_#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui原创 2021-09-15 15:05:25 · 2235 阅读 · 0 评论 -
Python/OpenCV:回调函数
import matplotlib.pyplot as pltfrom matplotlib.widgets import Sliderfrom pylab import *import cv2import numpy as npimg_1 = cv2.imread("20210809_img/IMG_0001.tiff",0)cv2.namedWindow('img_1', 0)cv2.resizeWindow('img_1', 960, 540)cv2.imshow('img_1',.原创 2021-08-10 11:54:39 · 477 阅读 · 0 评论 -
佳能相机CR2转TIFF
用dcraw工具,在cmd里执行,powershell竟然都不行原创 2021-08-09 15:38:22 · 353 阅读 · 2 评论 -
OpenCV/Python:相机标定
这也不是相机标定,只是了解相机标定之前的基础部分import numpy as npimport cv2import glob''' 在这里,我的棋盘格是8*8的,所以角点个数为7*7,当然棋盘格的行列个数可以不一样; 如果想方便代码改变棋盘格数,是以定义两个变量w(列角点数)和h(行角点数),注意如果角点维数超出的话,标定的时候会报错。'''w = 7h = 7# glob是个文件名管理工具images = glob.glob('test5/5test12.jpg')pr原创 2021-08-05 18:02:04 · 1116 阅读 · 0 评论 -
透视变换矩阵(单应矩阵)计算:findHomography 与 getPerspectiveTransform
两者联系: 都用于计算单应矩阵,即解一个线性方程组。由于单应矩阵有8个未知数(3*3,其中第9个数为1),所以至少需要4个点(每个点-x,y,提供2个约束方程)。两者区别: 1.计算方法不同:通过跟踪源码,发现getPerspectiveTransform用的是SVD分解,findHomography看不出是用什么方法(没注释,一堆等式)。但两者计算结果是一样的。 2.输入参数不同:getPerspectiveTransform只会拿前4个点去计算,findHomography...转载 2021-08-05 15:37:29 · 1446 阅读 · 0 评论 -
C++/OpenCV:error C4996: ‘fopen‘: This function or variable may be unsafe.
在调用fopen函数时会出现类似下面这种报错。error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.解决打开项目 -> 属性 -> C/C++ ->预处理器 ->...原创 2021-06-21 16:02:45 · 297 阅读 · 1 评论 -
C++/OpenGL:图像指针操作
//设置图像指针GLubyte* pixels;原创 2021-06-16 11:54:57 · 563 阅读 · 0 评论 -
C++/OpenCV:读取视频与调用摄像头
OpenCV通过VideoCapture类,来对视频进行读取,调用摄像头读取视频:1.先实例化再初始化VideoCapture capture;Capture.open("1.avi");2.实例化的同时进行初始化VideoCapture capture("1.avi");播放视频:视频读如到VideoCapture类对象之后,用一个循环将每一帧显示出来while(1){Mat frame;capture>>frame;imshow("读取视频"转载 2021-06-04 17:58:30 · 3405 阅读 · 0 评论 -
OpenCV:透视变换
一、话说透视变换透视变换是将图像从一个视平面投影到另外一个视平面的过程,所以透视变换也被称为投影映射(ProjectionMapping)。我们知道在图像的仿射变换中需要变换矩阵是一个2x3的两维平面变换矩阵,而透视变换本质上空间立体三维变换,根据其次坐标方差,要把三维坐标投影到另外一个视平面,就需要一个完全不同的变换矩阵M,所以这个是透视变换跟OpenCV中几何仿射变换最大的不同。OpenCV中透视变换的又分为两种:...转载 2021-06-04 15:00:19 · 741 阅读 · 0 评论 -
VS2019/openGL/freeglut配置
freeglut是opengl跨平台实用工具库,用于做窗口界面,封装各个平台鼠标键盘事件等等。用于替代早期的glut库(1998年后就不在更新维护)。安装及使用环境:win7 VS20131. 下载freeglut: 地址:https://sourceforge.net/projects/freeglut/2. cmake打开生成VS工程:a. build目录:为VS工程生成目录。b. FREEGLUT_BUILD_SHARED_LIBS、FREEGLUT_BUILD_STATIC_LI转载 2021-06-04 10:15:27 · 4462 阅读 · 1 评论 -
C++:VS2019遇到C1083 无法打开包括文件: “opencv2/opencv.hpp”: No such file or directory
很多人运行Opencv的时候(其实不仅仅是opencv,C++的代码都会遇到这个问题)遇到这个问题,以为是包含目录没有添加进去,但是添加了之后发现还是有问题为什么呢?其实是因为visual studio的生成模式Debug/Release搞的鬼,跟代码无关。其实VS提供的Debug和Release两种调试模式完全使用不同的两套类库,所以在设置的时候一定要看清,看下图上图中,VS在项目属性设置的时候默认打开的是Release模式!, 下图中,你的代码可能运行于Debug模式看下图改成Reals原创 2021-06-03 11:14:12 · 2746 阅读 · 1 评论 -
C++调用PyTorch模型:LibTorch
转载的文章,挺不错,学习一下!LibTorch学习笔记(一)前天由于某些原因需要利用C++调用PyTorch,于是接触到了LibTorch,配了两天最终有了一定的效果,于是记录一下。环境PyTorch1.6.0cuda10.2opencv4.4.0VS2017具体过程下载LibTorch去PyTorch官网下载LibTorch包,选择对应的版本,这里我选择Stable(1.6.0),Windows,LibTorch,C++/JAVA,10.2,然后我选择release版.转载 2021-02-25 15:42:03 · 3716 阅读 · 6 评论 -
C++/OpenCV:Error: Assertion failed ((unsigned)i0 < (unsigned)(size.p[0] * size.p[1]))
Error: Assertion failed ((unsigned)i0 < (unsigned)(size.p[0] * size.p[1])) in cv::Mat::at, file d:\opencv\build\include\opencv2\core\mat.inl.hpp, line 1150OpenCV中这种错误基本都是访问像素时指针越界造成的解决办法:1、检查指针下标是否正确2、row和col是否写反了...原创 2021-01-28 22:51:20 · 5218 阅读 · 2 评论 -
Python更换清华的源
python安装一些依赖包时,有些会下载很慢pip install packagenameconda install packagename假如上面两种方式安装都很慢,就可以考虑用清华的源方法如下,在后面加上一个 -i参数(tensorflow) C:\Users\Administrator>pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple下载速度飞快。...原创 2021-01-26 00:11:56 · 2615 阅读 · 1 评论 -
Python安装dlib包
python版本3.7,用的anaconda3pip install dlib安装失败conda install dlib同样失败最后只能去pypi官网下载dlib离线包然后找到anaconda中env中对应的python.exe解释器执行如下命令:path:***\python.exe setup.py install其中setup.py是离线包解压后的一个安装脚本这个过程很慢,中间有很多cpp的文件,有很多还会提示“没有文件”不过没有关系,等就行。...原创 2021-01-22 16:19:42 · 1021 阅读 · 2 评论 -
opencv:Gamma校正
// 链接 https://blog.csdn.net/linqianbi/article/details/78617615// Gamma 校正#include <iostream> #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #include <opencv2\imgproc\imgproc.hpp> #include<cm...转载 2021-01-04 19:22:41 · 765 阅读 · 0 评论 -
青苹果一键重装系统&安装VS2015
首先推荐一个一键重装系统的网站:http://www.pggho.com/青苹果,挺好用先下载Ghost镜像,然后解压,解压后是这样的然后直接运行exe就可以,默认安装C盘,很简单http://www.pggho.com/thread-34705-1-1.html装好系统之后,想要安装VS2019,但是总是提示无法下载,请检查网络连接查了好久也没有一个解决办法,后来就下了一个2015的离线包【VS2015社区版官方中文版下载】:http://download.microsoft.原创 2020-12-29 23:21:02 · 1993 阅读 · 0 评论 -
OpenCV 读图像、灰度化、边缘检测
#include<opencv2\highgui\highgui.hpp>#include<opencv2\imgproc\imgproc.hpp>#include<iostream>using namespace cv;using namespace std;int main() { Mat srcImage = imread("D://Visual studio//2020-10//Image algorithm//test.jpg");//...原创 2020-10-24 11:12:12 · 517 阅读 · 0 评论 -
VS2019配置opencv
摘要:vs2019新鲜出炉,配置opencv又有哪些不一样呢,这个教程将会一步一步的教你如何配置opencv和跑动opencv一个简单的项目。测试代码请在原文找到,转发备注原文链接:https://xygeng.cn/post/151.html环境:系统:win10系统截至20190523版本opencv版本:3.4.1版本IDE:宇宙最强IDEA最新版本2019社区版教程:1、下载opencv安装包,由于4.0.1版本会出现不同的错误,我们将使用3.4.1...原创 2020-10-23 16:35:46 · 2249 阅读 · 3 评论