
OpenCv
OpenCv(C++,Python)
ctrl A_ctrl C_ctrl V
中国科学技术大学硕士,互联网公司算法工程师。
展开
-
OpenCv (C++) 使用矩形 Rect 覆盖图像中某个区域
OpenCv (C++) 使用矩形 Rect 覆盖图像中某个区域原创 2023-07-14 11:30:18 · 3107 阅读 · 0 评论 -
C++ 使用一维数组和二维数组给 std::vector<cv::Point2d> 赋值的方法
C++ 使用一维数组和二维数组给 std::vector 赋值的方法原创 2023-06-08 16:58:57 · 2684 阅读 · 0 评论 -
pycharm中的 opencv-python 没有函数提示的解决方案
pycharm中的opencv-python没有函数提示的解决方案原创 2022-08-18 11:01:29 · 5451 阅读 · 13 评论 -
vs2017 配置 opencv
vs2017配置opencv原创 2022-08-12 16:23:21 · 1025 阅读 · 0 评论 -
opencv(C++) 连通域分析函数 connectedComponentsWithStats() 用法
connectedComponentsWithStats()是一个非常好用的连通域分析函数,可以检测连通域,获取连通域的数量、每个连通域的面积、宽度/高度、质心和左上角顶点坐标等。原创 2022-07-30 12:25:25 · 4275 阅读 · 1 评论 -
【OpenCv】图像的数据增强:HSV色彩空间介绍以及与BGR空间的转换
图像的数据增强:HSV色彩空间介绍以及与BGR空间的转换原创 2022-05-11 14:34:58 · 5571 阅读 · 0 评论 -
opencv 的 (x、y) 坐标与 (row、col) 坐标的区别和使用方法
目录1、创建全黑图像2、单通道图像素值的读取3、三通道图像素值的读取4、保存视频时的尺寸使用opencv时,经常用错(x、y)坐标和 (row、col) 坐标,所以写个博客总结一下。1、创建全黑图像Mat img = Mat::zeros(Size(cols,rows), CV_8UC1); //全黑单通道图Mat img = Mat::zeros(Size(cols,rows), CV_8UC3); //全黑三通道图Mat img1 = Mat::zeros(img.size(),原创 2022-03-23 10:40:11 · 8398 阅读 · 0 评论 -
opencv(C++) 视频处理,通过三通道像素值平均 将视频分辨率缩小为原来的一半
将一个 1920 * 1080 的视频压缩为 960 * 540 的视频,帧率不变。将每个 2 * 2 相邻像素点的像素值求平均,变成一个新的像素点(即 2 * 2 的平均池化)。原创 2022-03-19 23:29:37 · 898 阅读 · 0 评论 -
OpenCV(Python)将MP4转为内存更小的GIF
前言MP4转为GIF并不复杂,有很多在线工具和软件都可以实现,但这些工具将MP4转为GIF后,GIF会变得很大。如5M的MP4视频转为GIF可能变成15M,为了获得较小的GIF,不妨考虑使用opencv实现。通过设置GIF帧率和改变视频分辨率可以大大压缩视频大小。代码如下:import cv2import moviepy.editor as medvideo_name = "vedio.mp4"video = cv2.VideoCapture('vedio.mp4') # 读取视频#原创 2021-06-26 15:29:36 · 1282 阅读 · 0 评论 -
opencv(python)调用摄像头,保存图片/视频
调用摄像头video = cv2.VideoCapture(index)用于调用摄像头,其中index从0开始命名。在台式机中,0表示外接摄像头;笔记本电脑中,0为内置摄像头,1为外接摄像头。保存图片/视频opencv支持对某一帧图片或摄像头拍摄的全部视频进行保存,图片保存利用cv2.imwrite()函数即可实现。视频保存需创建视频流,将摄像头拍摄的视频分解为图片写入视频流中,生成视频。保存图片的代码import cv2video = cv2.VideoCapture(0) # 调原创 2021-06-30 00:08:12 · 4772 阅读 · 3 评论 -
vs2017安装image watch插件的解决方案
前言直接用在github下载的image watch.vsix插件安装时可能会提示 “未能成功对所有选定的产品安装"Image Watch”。有关详细信息,请单击对话框底部的安装日志链接。”网上有一种解决方案是用win.rar解压打开image watch.vsix,但用户不一定能找到win.rar来打开文件,也比较麻烦。因此这里提供了一种稳妥有效的办法。一、安装办法1、打开VS20172、点击“工具”----“拓展和更新(U) ”3、点击左侧的“联机”4、在右上角搜索栏输入image w原创 2021-01-24 19:49:10 · 2845 阅读 · 4 评论 -
opencv与C++实现最大类间方差法(OTSU)进行图像二值化
//直接上代码,使用最大类间方差法进行二值化的函数void threshold_otsu(Mat &mat, Mat &mat_thresh) //mat为输入图像,mat_thresh为二值化后的输出图像{//求出图像的最大和最小像素值,确定阈值区间double min_value_mat, max_value_mat;Point min_position_mat, max_position_mat;minMaxLoc(mat, &min_value_mat, &原创 2021-03-09 16:17:40 · 1702 阅读 · 0 评论 -
opencv(C++)读取文件夹中的一组图片:sprintf_s()函数
sprintf_s()函数可以读入指定路径下的图片序列,但前提是图片命名必须是1.jpg 2.jpg 3.jpg… 之后用imread读取图片路径即可。代码如下:const int num_img = 20; # 图片数量char fileName[100];Mat img;for (int img_order = 1; img_order <= num_img; img_order++){ // sprintf_s读入指定路径下图片序列,图片路径为filename s原创 2021-06-26 18:41:59 · 1797 阅读 · 0 评论 -
opencv(C++) 如何在轮廓的最大外接矩形的外侧画一个更大的矩形
这是一个非常有趣的问题,也涉及到一个我还没有解决的疑问,先看代码吧。//轮廓检测vector<vector<Point>> contours; //轮廓vector<Vec4i> hieracrchy; //轮廓结构findContours(dilate_dst, contours, hieracrchy, 3, 2, Point()); //检测最外围轮廓for (int i = 0; i < contours.size(); i++)原创 2021-11-05 22:37:10 · 1137 阅读 · 0 评论 -
区域生长法的C++实现(opencv)
区域生长法的C++实现(opencv)区域生长法是一种图像分割的常用算法,能够将目标区域精确得分割出来。我的程序是将图像最中央的白色圆形区域提取出来,因此第一个种子点选择在了图像中央。待处理图片:提取结果如下:代码如下:void AreaGrow(Mat &mat, Mat &growArea) //mat为输入图像,growArea为区域生长后的输出图像{ //定义第一个种子点位置为图片最中心处 int firstSeed_x = mat.cols / 2;原创 2021-03-26 15:56:24 · 4534 阅读 · 12 评论 -
opencv 按位与运算(bitwise_and)提取灰度图的 ROI 区域 (C++)
ROI区域:region of interest,感兴趣区域bitwise_and 并不限制在二值图像,也可以用于灰度图的处理。可能在实际应用中,提取灰度图中的ROI区域更有价值。比如我们随便找一张图,并将其转为灰度图:ROI区域为白色圆形区域:用 bitwise_and 在原图中提取的ROI区域为:代码(C++):int main(){ const char* imagename = "test.jpg"; Mat img = imread(imagename,0); if (i原创 2022-01-29 10:29:26 · 4885 阅读 · 0 评论