Computer Vision
视觉处理算法
流浪德意志
千里之行始于足下!
展开
-
rospy节点接收数据matplotlib绘图并发布到rostopic
#!/usr/bin/env pythonimport rospyimport numpy as npimport PIL.Imagefrom numpy.linalg import normimport matplotlib.pyplot as pltimport matplotlib.patches as patchesfrom matplotlib.patches import Polygonfrom scipy.ndimage.morphology import distance_.原创 2021-02-26 22:23:41 · 1188 阅读 · 1 评论 -
OpenCV自带函数实现灰度图像平移和旋转算法(平面内)
float shift_and_rot_test_opencv(cv::Mat des, Vector2f shift, int rot){ float center_x=(DIM_SAMPLE_POINTS_X-1)/2.0; float center_y=(DIM_SAMPLE_POINTS_Y-1)/2.0; cv::Point center = cv::Point(center_x, center_y); double scale = 1.0; //img_shift_rot.原创 2020-11-01 07:12:37 · 349 阅读 · 0 评论 -
openCV系列之Mat和Vector类型直接的转换
来源:https://blog.csdn.net/guyuealian/article/details/80253066#include <opencv2/opencv.hpp> using namespace cv;using namespace std; /***************** Mat转vector **********************/template<typename _Tp>vector<_Tp> convertMat原创 2020-10-30 06:34:05 · 4421 阅读 · 0 评论 -
OpenCV灰度图像平移和旋转算法(平面内)
旋转重心为图像中心;为简化计算,旋转角度为int值,单位为度;DIM_SAMPLE_POINTS_X,DIM_SAMPLE_POINTS_Y 为图像大小,建议为相等;图像的x轴与实际坐标相等,而y轴方向相反,因此shift_y之前有个负号;为了加快计算速度,常用度数的正弦和余弦值保存在数组VIEW_COS_LOOKUP中; float pos_x, pos_y; int pos_x1, pos_x2, pos_y1, pos_y2; float sum = 0.0; ..原创 2020-10-29 05:13:12 · 609 阅读 · 0 评论 -
OpenCV图像特征匹配算法ORB/SURF/BRISK
//必须转换为8位图像 Img.convertTo(img1, CV_8UC1,255,0); current_image.convertTo(img2,CV_8UC1,255,0); std::vector<cv::KeyPoint> keypoints1, keypoints2; double minDistance = 10; int blockSize = CORNER_BLOCKSIZE, gradientSize = CORNER_BLOCKSIZE;...原创 2020-10-20 17:45:43 · 383 阅读 · 0 评论 -
fatal error opencv2 xfeatures2d No such file or directory特征匹配致命错误解决办法
OpenCV3对OpenCV的模块进行了调整,将开发中与nonfree非免费模块放在 了OpenCV_contrib中(SURF,SIFT),因此需要在OPENCV基础上安装opencv_contrib。简单解决办法:sudo add-apt-repository ppa:ignaciovizzo/opencv3-nonfreesudo apt-get updatesudo apt install libopencv-dev参考来源:https://stackoverflow.com/qu原创 2020-10-15 23:32:32 · 1385 阅读 · 1 评论 -
OPENCV角点检测和亚像素级检测
首先进行粗检测,函数goodFeaturesToTrack,存储进入corners中,然后cornerSubPix函数进行亚像素精确匹配,设置结束条件。由于实际应用中线条较粗,因此CORNER_BLOCKSIZE = 9;CORNER_QUALITYLEVEL = 0.6;其他参数可以微调。 std::vector<cv::Point2f> corners; //double qualityLevel = 0.5; double minDistanc.原创 2020-10-09 03:45:44 · 412 阅读 · 0 评论 -
OpenCV cornerHarris Error: Assertion failed检测Harris角错误,原因是必须是单通道的图像
OpenCV Error: Assertion failed (src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) || src.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))) in cornerEigenValsVecs, file /home/nl/OpenCV/modules/imgproc/src/corner.cpp.原创 2020-10-08 02:34:22 · 407 阅读 · 0 评论 -
OPENCV对图像进行简单平滑处理BLUR
参考来源:https://docs.opencv.org/3.4/dc/dd3/tutorial_gausian_median_blur_bilateral_filter.htmlswitch(SMOOTH_METHOD) { case NO_BLUR: img2 = img; break; case HOMO_BLUR: cv::blur(img, img2, cv::Size(KERNEL_LENGTH, KERNEL_LENGTH), cv::Point(-1,-原创 2020-10-07 04:40:55 · 239 阅读 · 0 评论 -
对灰度图像进行简单线性插补的函数(有未知bug)
current_view存放图像数据,current_view2存放临时数据;图像大小TEMPLATE_X_SIZETEMPLATE_Y_SIZEstep_i step_j 存放圆心周围的相对位置,初始化时生成,由内第二层开始;LINE_THRESHOLD = 0.1;LINE_THRESHOLD_PIXEL = round(LINE_THRESHOLD * 1.0 * TEMPLATE_X_SIZE / 2 / SENSOR_RANGE;for(int i=2; i <= LI..原创 2020-10-07 04:20:32 · 254 阅读 · 0 评论