opencv
邦戈栗子
这个作者很懒,什么都没留下…
展开
-
python opencv(cv2)常用代码
1.从原图截图rect区域 img = cv2.imread(imgname) h_ori, w_ori = img.shape[:2] minx = w_ori miny = h_ori maxx = 0 maxy = 0 x = 1 y = 1 w = 10 h = 20 if x < 0: x = 0原创 2020-12-23 10:51:08 · 438 阅读 · 0 评论 -
基于Opencv和MTCNN检测人脸五个关键点进行仿射变换人脸对齐 - Python版本
基本原理是先通过MTCNN检测到人脸的五个关键点,再把原图中人脸区域外扩100%(这样做的目的是保证对齐后图片中没有黑色区域,当然这个外扩的比例是看对齐效果自己可以调节的,我这里设置的100%)。最后的人脸对齐尺寸分为两种:112X96尺寸和112X112尺寸,其中首先需要定死仿射变换后人脸在目标图上的坐标,然后直接变换。废话不多说,直接手撕代码。# 该代码实现利用人脸的五点仿射变换实现人脸对齐# 具体就是首先使用mtcnn检测算法检测出人脸区域,并得到lanmarks关键点坐标和检测框坐标..转载 2020-06-29 09:55:25 · 1949 阅读 · 2 评论 -
opencv 将多张图像做简单的拼接
#include <iostream>#include <core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>#include<opencv2/stitching.hpp> using namesp...转载 2019-11-07 18:06:34 · 642 阅读 · 0 评论 -
opencv matchTemplate模板匹配
定义:模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术.如何实现:我们需要2幅图像:原图像 (I): 在这幅图像里,我们希望找到一块和模板匹配的区域模板 (T): 将和原图像比照的图像块我们的目标是检测最匹配的区域:为了确定匹配区域, 我们不得不滑动模板图像和原图像进行 比较 :通过 滑动, 我们的意思是图像块一次移动一个像素 (从左往右,从上往下). 在每一个位置, 都进行...转载 2018-06-17 17:16:55 · 1130 阅读 · 0 评论 -
opencv Mat 矩阵基本操作
下面介绍Mat矩阵的基本操作:1、可以使用Mat::eye,Mat::ones,Mat::zeros 对矩阵进行初始化;2、矩阵可以进行加减乘除操作; Mat m = Mat::eye(5, 5, CV_32F); Mat n = Mat::ones(5, 5, CV_32F); Mat p = Mat::zeros(5, 5, CV_32F); Mat m1 = Mat::eye(5, 5...原创 2018-06-29 20:35:54 · 1816 阅读 · 0 评论 -
opencv 获取鼠标在图像上的坐标及绘制并截取矩形区域
1.函数介绍setMouseCallbackCV_EXPORTS void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata = 0); 函数参数介绍 const string& winname,windows视窗名称,对名为winname的视窗进行鼠标监控。 ...转载 2018-06-27 14:00:32 · 5396 阅读 · 2 评论 -
opencv Mat和iplimage 访问图像元素方法总结
MatMat一般是二维向量,如果是灰度图,一般存放<uchar>类型;如果是RGB彩色图,存放<Vec3b>类型。单通道灰度图数据格式:多通道的图像中,每列并列存放通道数量的子列,如RGB三通道彩色图:注意通道的顺序反转了:BGR。通常情况内存足够大的话图像的每一行是连续存放的,也就是在内存上图像的所有数据存放成一行,这中情况在访问时可以提供很大方便。可以用 isConti...原创 2018-06-28 20:11:05 · 387 阅读 · 0 评论 -
opencv findContours、drawContours、minAreaRect查找图像的轮廓、最小外接矩形
findContoursfindContours( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset=Po...原创 2018-06-29 09:34:43 · 5872 阅读 · 0 评论 -
opencv:VideoCapture 读取网络摄像头视频图像
VideoCapture 读取视频段或者usb摄像头的方法请参考:视频段:https://blog.csdn.net/qq_42189368/article/details/80524074string filename = "D:\\test.avi";VideoCapture cap0;cap0.open(filename);usb摄像头;https://blog.csdn....原创 2018-12-17 16:05:08 · 8200 阅读 · 6 评论 -
opencv: cv2.imread()读取中文路径报错的问题及使用cv2.resize
使用python中cv2读取带中文路径的图片失败,解决办法如下:附带resize使用Python: cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])(1) src:原图片(2)dsize:缩放图片尺寸,如果dsize=0,默认计算方式如下dsize=Size(round(fx∗src.cols),round(fy∗s...原创 2019-08-26 17:32:26 · 1080 阅读 · 0 评论 -
opencv findContours/drawContours检测图像中的轮廓
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv/cv.h>using namespace cv;using namespace ...转载 2018-06-17 17:02:57 · 613 阅读 · 0 评论 -
opencv 在图中绘图(矩形框,线段,点,圆)
使用opencv处理图像时,经常会需要在图像上画点、线段、矩形框等,而在opencv画图中Point和Scalar是两个非常重要的结构体。1、Point表示由其图像坐标 x 和 y 指定的2D点。可定义为:Point pt;pt.x = 10;pt.y = 8;或者Point pt = Point(10, 8);2、Scalar 表示了具有4个元素的数组。在OpenCV中被大量用于传递像素值。如...原创 2018-06-17 16:46:17 · 12144 阅读 · 0 评论 -
opencv VideoWriter保存摄像头视频、本地视频等
打开视频文件或摄像头视频需要使用Opencv中的VideoCapture类,保存视频或摄像头视频到本地磁盘,需要使用Opencv中的VideoWriter类。VideoWriter类的一个常用构造方式如下:VideoWriter(const string& filename, int fourcc, double fps,Size frameSize, bool isColor=true)...原创 2018-06-12 12:13:25 · 24777 阅读 · 7 评论 -
opencv读取视频文件,并将视频文件保存为图片
#include <iostream>#include <windows.h>#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <...原创 2018-05-31 14:42:34 · 2244 阅读 · 0 评论 -
opencv中Mat IplImage互相转换的问题及部分常用功能
opencv中 Mat、IplImage、IplImage之间的相互转换1. Mat /IplImage / IplImage*格式转换//Mat->IplImageIplImage *frame;Mat frmImg = cv::imread("A.jpg");;frame = &IplImage(frmImg);//IplImage frame;Mat frmImg =...原创 2018-05-16 20:39:19 · 254 阅读 · 0 评论 -
opencv Mat使用总结
一、Mat和IplImage1、IplImage*,直接暴露内存,如果忘记释放内存,就会造成内存泄漏。2、从OpenCV2开始,开始使用Mat类存储图像,具有以下优势:(1)图像的内存分配和释放由Mat类自动管理;(2)Mat类由两部分数据组成:矩阵头(包含矩阵尺寸、存储方法、存储地址等)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同,矩阵可以是不同的维数)的指针。Mat在进行赋值和拷贝时...转载 2018-06-17 11:55:05 · 787 阅读 · 0 评论 -
opencv 常见的优化问题和技巧
【1】释放Mat图像内存空间: Mat image = imread("D:\\OpencvTest\\1.jpg"); image.release();【2】释放图像通道分割的图像空间 std::vector<cv::Mat> layers; split(image, layers); // free memory for (auto ii = 0; ii < layers....转载 2018-06-29 13:57:06 · 2142 阅读 · 0 评论 -
opencv读摄像头_随机显示线段颜色
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv/cv.h>using namespace cv;using namespace s...原创 2018-05-25 21:07:36 · 497 阅读 · 1 评论