
OpenCV
文章平均质量分 68
HW140701
这个作者很懒,什么都没留下…
展开
-
OpenCV - 图片增加透明通道,图片合并透明通道
按理来说,使用OpenCV的CUDA版本进行计算相比CPU会快很多,但是经过我对上面CPU和CUDA版本的运行时间的测试,发现最终处理的时间是差不多的,我分析这个原因是在使用CUDA版本时,需要将cpu上的图片使用。需要注意的是,Mask图片必须与原始图片具有相同的分辨率大小和相同的数据类型,比如原始图片是1920x1080,CV_8UC3的图片,那么Mask图片必须是1920x1080,CV_8UC1的图片。方法分离原始图片各个通道,然后将Mask加入到原始通道中,最后使用。合成新的通道生成最后的图片。原创 2023-07-12 09:41:59 · 3508 阅读 · 0 评论 -
OpenCV - cv::Mat与unsigned char*数组或者float*数组相互转换,cv::Mat与std::vector的相互转换
通常情况下,在同一个opencv项目传递cv::Mat可直接通过const cv::Mat& img这种方式传递,但是如果需要进行跨语言传递,比如C++传递到C#或者C#传递到C++,那么通常这种情况下需要将cv::Mat转换为内存指针比如unsigned char指针或者float指针进行传递。我们可以将第1节中的代码进行修改,不使用动态数组,而是改用使用std::vector,这样就不用太在意内存泄漏的问题。我们可以写一个模板的方法完成cv::Mat与不同类型的std::vector之间的相互转换。原创 2023-06-06 11:25:47 · 5589 阅读 · 0 评论 -
C++ - 使用ffmpeg读取视频旋转角度并使用OpenCV根据旋转角度对视频进行旋转复原
1 视频中的旋转信息以及为什么会有旋转信息Android或者ios等手机上录制视频时,由于重力感应或者录制视频的摆放方式的问题会导致录制的视频拥有旋转信息。如果是横屏录制(手机逆时针旋转90度),则录制的视频时不带角度的。如果是竖屏录制(正常的拿手机的姿势),此时的录制的视频的旋转角度是90度。如果再旋转90度,此时一般音量键和关屏键朝下,此时的视频的旋转角度是180。以此类推。所以在手机上的视频一般会有4种角度的视频,播放时,要对视频资源进行旋转后再进行播放,不然视频就会出现各种反转、倾倒。在http原创 2021-12-07 10:35:10 · 1855 阅读 · 0 评论 -
OpenCV - 将图片转换为深度学习模型输入格式,BGR通道转RGB,图片归一化,HWC转CHW
文章目录1 将图片转换为深度模型输入格式1.1 自行进行转换1.1.1 BGR通道转RGB通道1.1.2 图片归一化1.1.3 HWC转CHW1.2 使用cv::dnn::blobFromImage进行转换1.2.1 函数形式1.2.1 函数参数1 将图片转换为深度模型输入格式在C++进行人脸识别、目标检测的过程中,经常是以图片数据作为深度学习模型推理的输入数据的,但是从OpenCV读取的图片数据并不能直接用于深度学习模型的推理过程。首先,OpenCV读取图片默认使用的是BGR通道排列方式,而深度学原创 2021-09-23 10:41:27 · 4749 阅读 · 1 评论 -
基于OpenCV和VTK的冠脉三维重建
冠脉三维重建就是从两幅不同角度拍摄的冠脉医学图片根据相机参数(角度)重建出原有的三维冠脉形态。 具体文献可以参考: 1.黄家祥. 冠状动脉树三维骨架重建方法的研究[D]. 天津大学, 2003. 2.王国铸. 单臂冠脉造影三维重建与定量分析[D]. 华中科技大学, 2012. 3.郝培远. 冠脉造影三维重建定量分析(QCA)及最佳投照角度...原创 2017-05-25 09:02:51 · 6953 阅读 · 46 评论 -
OpenCV入门十:静态图片人脸检测和摄像头人脸检测
主要用到OpenCV自带的CascadeClassifier这个类下的detectMultiScale函数,其检测效果并不是很好 void CascadeClassifier::detectMultiScale(InputArray image, vector<Rect>& objects, double scaleFactor=1.1, int minNeig...原创 2017-03-29 22:10:41 · 3152 阅读 · 2 评论 -
OpenCV入门三:OpenCV创建新图像以及遍历图片像素值和设置像素值
1.OpenCV创建一个灰度图,遍历每一行每一列并设置每一行每一列的像素值,并将其保存为图片,但是at方法可读性较高,但是效率不高#include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespac...原创 2016-12-16 20:57:39 · 20973 阅读 · 1 评论 -
OpenCV入门九:使用findContours()查找图片轮廓线,并将轮廓线坐标点输出
使用findContours()查找图片轮廓线,并将轮廓线坐标点输出,访问二维vector,使用迭代器和下标两种方式#include <iostream> #include <fstream>#include <opencv2/opencv.hpp>#include <opencv2/core/core.hpp> #include...原创 2017-01-12 20:00:13 · 24540 阅读 · 15 评论 -
OpenCV入门七:OpenCV打开视频文件,并对其中的每一帧图像进行Canny算子边缘化提取,并将结果保存为视频文件
OpenCV打开视频文件,并对其中的每一帧图像进行Canny算子边缘化提取#include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp>using nam...原创 2016-12-22 18:00:39 · 6916 阅读 · 5 评论 -
OpenCV入门四:用OpenCV读取一个图像,并使用Canny算子进行边缘提取
OpenCV入门四:用OpenCV读取一个图像,并使用Canny算子进行边缘提取#include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp>using ...原创 2016-12-19 10:05:47 · 2460 阅读 · 0 评论 -
OpenCV入门八:OpenCV新建一个图片,并在图片上画由一点到另一点的直线,采用反走样形式
OpenCV新建一个图片,并在图片上画由一点到另一点的直线,采用反走样形式#include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespace cv; using namespace std;int...原创 2016-12-23 10:58:33 · 4344 阅读 · 0 评论 -
OpenCV入门六:OpenCV打开摄像头并对摄像头获取的每一帧图像进行Canny算子边缘化提取操作
OpenCV打开摄像头并对摄像头获取的每一帧图像进行Canny算子边缘化提取操作#include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp>using ...原创 2016-12-22 17:57:42 · 5486 阅读 · 0 评论 -
OpenCV入门五:OpenCV打开摄像头并用窗口显示摄像头的内容
OpenCV打开摄像头并用窗口显示摄像头的内容#include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp>using namespace cv; us...原创 2016-12-21 10:53:41 · 4989 阅读 · 0 评论 -
OpenCV入门一:Mat与lplImage和CvMat的相互转换
OpenCV2中新增了方便的Mat类,但是OpenCV中仍然支持C语言的lplImage和CvMat结构,但是在有些时候,出于兼容性的考虑,需要进行Mat与IpIImage和CvMat的转换。1.Mat转为lplImage和CvMat格式1.1 Mat转为IplImage结构Mat img(Size(400,400),CV_8UC3);lplImage iplimg=img;//转...原创 2016-12-16 18:18:38 · 6208 阅读 · 0 评论 -
OpenCV入门二:OpenCV读取一张图片显示,并将其重写为灰度图
OpenCV读取一张图片进行显示,并将其重写为灰度图//1.OpenCV读取一张图片显示,并将其重写为灰度图#include <iostream> #include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespace cv; using ...原创 2016-12-16 18:24:23 · 5987 阅读 · 0 评论