分类 OpenCV_图像_视觉_算法 下的文章
棋盘格标定板图片制作
URL: https://markhedleyjones.com/projects/calibration-checkerboard-collection
Calibration Checkerboard Collection
Free camera calibration checkerboards for computer vision research and robotics applications. Compatible with OpenCV, ROS camera_calibration, and other computer vision libraries. Download high-quality PDF checkerboards in A4, A3, A2, and A1 formats with no watermarks or advertising.
Disable any page scaling or automatic page fitting when printing, otherwise the checker dimensions will be incorrect.
Generate Your Own Checkerboards
Generates Scalable Vector Graphic (SVG) files, which can be edited using free software such as Inkscape.
| mm | |
| mm | |
| mm |
8x6 Checkerboards
A4 Checkerboards
A3 Checkerboards
A2 Checkerboards
A1 Checkerboards
基于AI的相机深度估计: MiDaS, Depth Pro, Depth Anything v2, DepthCrafter, Marigold, Metric3D
1、Depth Anything V2
https://github.com/DepthAnything/Depth-Anything-V2
2、Prior Depth Anything
https://github.com/SpatialVision/Prior-Depth-Anything
3、Metric3D V2
https://github.com/YvanYin/Metric3D?tab=readme-ov-file
4、ZoeDepth
https://github.com/isl-org/ZoeDepth
5、MiDaS
https://github.com/isl-org/MiDaS
6、Depth Pro
https://github.com/apple/ml-depth-pro
7、DepthCrafter
https://github.com/Tencent/DepthCrafter
8、Marigold
https://github.com/prs-eth/Marigold
视觉SLAM经典的回环检测算法:DBow、DBow2、DBow3
OpenCV 图像格式BGR转 YUV420sp问题
一、OpenCV 图像格式转换为YUV420
// yuv420sp format: CV_8UC1, cols: image_width, rows: image_height*3/2
cv::cvtColor(image, yuv420sp, cv::COLOR_BGR2YUV_I420);
注意: 上面这行代码转为YUV420后,Y、U、V都是单独平铺的,即 Y,Y,Y... U,U,U... V,V,V...
二:转为YUV420sp, UV交叠
/*---------------------------------------------------------------------------
** Convert image format: BGR to YUV420sp
**
** YUV420sp:
** Y Y Y Y ...
** U V U V ...
** -------------------------------------------------------------------------*/
void To_YUV420_SP(const cv::Mat &image, cv::Mat &yuv420sp)
{
cv::cvtColor(image, yuv420sp, cv::COLOR_BGR2YUV_I420); // yuv420sp format: CV_8UC1, cols: image_width, rows: image_height*3/2
cv::Mat temp = yuv420sp.clone();
const unsigned char *pU = temp.data + image.cols*image.rows; // skip Y
const unsigned char *pV = temp.data + image.cols*image.rows + image.cols*image.rows/4; // skip Y and U
unsigned char *pUV = yuv420sp.data + image.cols*image.rows; // skip Y
for(int j=0; j<image.cols*image.rows/4; j++){
*pUV++ = *pU++;
*pUV++ = *pV++;
}
return;
}