OpenCV
CV-deeplearning
小米AI Lab图像算法工程师,擅长表格识别、目标检测、行人属性识别、车牌识别等。
展开
-
透视变换 c++实现
一. 场景说明已知某个物体的四个角点(比如:车牌、表格等)坐标和对应的图片,如何通过透视变换获得矫正的图片。原理解析:对四个点进行排序(四个点可能是乱序的);获得透视变换矩阵;获得矫正的图片;二. 代码实现#include <iostream>#include <string>#include "opencv2/core.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/highgui.hpp"int原创 2022-05-16 10:35:38 · 1236 阅读 · 0 评论 -
c++ OpenCV 读取某个文件夹下的所有图片
#include <vector>#include <opencv2/imgproc.hpp>#include <opencv2/highgui.hpp>std::vector<cv::Mat> ReadImage(cv::String pattern){ std::vector<cv::String> fn; cv::glob(pattern, fn, false); std::vector<cv::Mat原创 2022-04-23 11:05:17 · 6370 阅读 · 1 评论 -
基于特征的图像对齐(SIFT或ORB)
一. 效果图什么是图像对齐或者图像配准?图像对齐(或者图像配准)可以扭曲旋转(其实是仿射变换)一张图使它和另一个图可以很完美的对齐。下图为SIFT特征匹配的图。下图为上面左变图矫正的结果。二. 基于特征的图像对齐步骤下面以ORB特征为例说明,SIFT特征的步骤与ORB几乎相同。1. 读取图片到内存2. 检测特征点 为两张图检测ORB特征点。为了计算单应性矩阵4个就够了,但是一般会检测到成百上千的特征点。可以使用参数MAX_FEATURES 来控制检测的特征点的数量。检测特征点原创 2021-08-26 16:14:57 · 6244 阅读 · 1 评论 -
如何分析两张图片的对应关系?
一. 情景引入当我们要分析两张图片的关系,或者两张图片中特定区域的对应关系时,可用该方法。可视化效果图如下:二. 原理介绍与代码实现原理:把两张图的像素映射到范围为[0,1]的区间,以第一张图的像素值为x坐标,另一张图的像素值为y坐标,从而组成平面中的点,将这些点显示在幕布中就是上面的效果。由于图片一般有三个通道(BGR),所以用三种不同颜色的点表示,三种颜色的点表示每个通道的关系。我们分析下面两张图的关系:import mathimport cv2import numpy as np原创 2021-08-26 09:43:55 · 1250 阅读 · 0 评论 -
ubuntu 安装 opencv 的 c++版本
一. 环境配置1. 下载安装包并解压(1)去官网下载安装包。 选择**Sources**下载,我下在的是最新版本。(2)解压安装包(zip)unzip opencv-4.5.2.zip 解压后,进入解压后的文件包中(opencv-4.5.2)2. 安装依赖库和cmakesudo apt-get updatesudo apt-get install cmakesudo apt-get install build-essenti原创 2021-07-09 09:28:08 · 1801 阅读 · 11 评论 -
OpenCV基本操作(开闭运算)
一. 基础铺垫 图像的开闭运算是在图像膨胀腐蚀的基础上得到的,图像膨胀腐蚀可参考:膨胀与腐蚀 通俗理解:膨胀即"增肥", 腐蚀即"减肥"。二. 开闭运算 开运算:先腐蚀,再膨胀。一般用来去除物体外边的毛刺。 闭运算:先膨胀,再腐蚀。一般用来去掉物体内部缺陷。 一个小例子:import cv2import numpy as npif __name__ == "__main__": ...原创 2021-06-17 19:15:53 · 1483 阅读 · 0 评论 -
OpenCV 基本操作(膨胀腐蚀)
演示OpenCV膨胀腐蚀操作输入图片test.jpg如下:代码:代码段 小部件result.jpg如下:关于膨胀腐蚀的详细讲解:膨胀与腐蚀总结:膨胀操作就是把字体变胖,通常用来填补图像的缺陷;腐蚀操作就是把字体变瘦,用来去掉图像外边的毛刺。...原创 2021-06-15 20:06:22 · 971 阅读 · 6 评论 -
把分割结果的mask画到图上
1. 获取分割结果2. 把分割结果画图片上# --*-- coding:utf-8 -*-import cv2import numpy as npimport xml.etree.ElementTree as ET def xml_reader(filename): tree = ET.parse(filename) objects = [] for obj in tree.findall('image'): obj_struct = {}原创 2020-05-28 16:42:08 · 4055 阅读 · 0 评论 -
三分钟带你用python写一个自己的播放器
用OpenCV读取视频流,然后显示出来即可。当然,也可以处理读取的帧,合成新的视频。原创 2020-04-29 10:10:47 · 2462 阅读 · 0 评论 -
OpenCV从摄像头获取视频流并保存到本地
用OpenCV调取摄像头获取视频流,图片经过处理后保存到本地。原创 2020-04-28 19:24:47 · 4166 阅读 · 3 评论 -
python 如何在图片上写汉字?
如何在图片上写汉字?opencv & PIL原创 2020-04-23 19:23:02 · 1888 阅读 · 1 评论 -
智能交通-场景数据增强(Python CV)
智能交通场景中,有时需要变化场景,一下模拟下雨场景,下雪场景,起雾场景,运动场景,亮度变化场景。。。进行数据增强后提高了模型的鲁棒性。原创 2020-04-15 18:54:16 · 1565 阅读 · 2 评论 -
OpenCV与PIL图片格式互转(python)
PIL转换为OpenCV图片格式import cv2from PIL import Imageimport numpy image = Image.open("car.jpg")image.show()img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR)cv2.imshow("OpenCV",img)cv2.wa...原创 2020-04-14 17:41:47 · 2863 阅读 · 0 评论 -
三分钟带你配置深度学习环境
conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。 三分钟带你用conda配置深度学习环境。原创 2020-04-13 18:57:19 · 512 阅读 · 0 评论 -
三分钟带你学会爬虫
## 深度学习模型训练极大的依赖数据,当数据量不够时,可通过网络爬虫从网上爬取数据。下面以爬取刘亦菲和刘德华图片数据为例介绍爬虫:## 代码使用步骤如下:1. 在name.txt中输入你要爬取的关键词,我输入的为刘亦菲和刘德华(不用创建文件夹,文件夹是代码生成的)。刘亦菲刘德华import reimport requestsfrom urllib import err...原创 2020-04-13 10:11:38 · 1011 阅读 · 1 评论 -
Opencv中的坐标变换
h, w, c = img.shape()ResizeImg = cv2.resize(img, (w, h))dim = [h, w]dim = (batch, channal, h, w)原创 2018-07-03 10:17:47 · 1784 阅读 · 0 评论