
opencv
文章平均质量分 55
Irving.Gao
中国科学技术大学在读研究生,自动驾驶场景理解方向。
研究方向:自动驾驶3D计算机视觉感知任务,图像分割,BEV,目标检测。
本科经历:大创项目-基于物联网的沙漠治理智能机器人集群、智能车、ROBOCON等机器人相关比赛,曾获挑战杯、智能车等国家一等奖四项等数十项国家级奖项,曾在杭州宇树科技、深圳科创学院智能驾驶中心、上海纽励科技、商汤科技实习。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OpenCV-C++——基本操作总结
获取图像尺寸cv::Mat image;image.rows // 宽 480 intimage.cols // 长 640 int遍历图像OpenCV遍历图像int scan_image_random(Mat &I){ for( int i = 0; i < I.rows; ++i) { for( int j = 0; j < I.cols; ++j { I.at<Vec3b>(i原创 2022-04-24 10:52:48 · 1182 阅读 · 0 评论 -
opencv-python——基础图像处理操作总结
文章目录1.图片的读取保存(1)加载并显示图片加载彩色图加载灰度图加载原图并转换通道(2)保存图片Opencv图像处理操作(1)截取ROI(2)通道分割与合并(3)颜色空间转换示例:实现一个使用HSV来只显示图片中蓝色物体(4)阈值分割阈值调节器固定阈值分割自适应阈值阈值分割方法小结(5)图像几何变换缩放图片翻转图片平移图片(6)绘图功能绘制线条绘制矩形添加文字绘图功能总结(7)图像间数学运算图片叠加图像混合图像运算操作总结(8)图像滤波滤波与模糊均值滤波高斯滤波中值滤波双边滤波图像锐化(9)腐蚀与膨胀腐蚀原创 2021-03-12 15:49:48 · 4271 阅读 · 1 评论 -
opencv-python——报错解决:error: (-215:Assertion failed) func != 0 in function ‘resize‘
【代码】opencv-python——报错解决:error: (-215:Assertion failed) func!原创 2023-09-07 15:22:59 · 1857 阅读 · 0 评论 -
CUDA——报错解决:编写CUDA+OpenCV混合程序时遇到:undefined reference to `cv::imread(std::__cxx11::basic_string<char,
【代码】CUDA——报错解决:编写CUDA+OpenCV混合程序时遇到:undefined reference to `cv::imread(std::__cxx11::basic_string<char,原创 2022-11-21 15:05:18 · 1806 阅读 · 0 评论 -
Python——ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)
报错截图在使用已经编译好的python3的cv_bridge时,并且正常在~/.bashrc中加入了source,但是依然报以上错误。解决方法在~/.bashrc指定你编译并使用的cv_bridge的python的环境变量:# 添加conda的python3环境变量export PYTHONPATH=%PYTHONPATH:/home/innox/anaconda3/bin/python这里我使用的是conda,如果你是用本机的python3,加入如下:# 添加python3环境变量原创 2022-04-26 10:25:29 · 6363 阅读 · 10 评论 -
Ubuntu18.04——源码编译CUDA版本OpenCV-4.1.1
文章目录1.拉取源码2.Cmake报错解决:CUDA_nppicom_LIBRARY (ADVANCED) 未定义解决方法3.Make报错解决:Unsupported gpu architecture 'compute_30'解决方法报错解决:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引解决方法`CMakeLists.txt`模板OpenCV程序ROS-OpenCV程序前提条件:可以自由S网。ubuntu1804编译opencv4.4 +cuda1.拉取源码gi原创 2022-04-21 19:26:24 · 4717 阅读 · 0 评论 -
ROS——C++与Python3的图像节点基于OpenCV相互发送和接收
文章目录C++与Python相互传输的数据格式读取摄像头并发布Python读取摄像头C++读取摄像头接收节点Python接收图像C++接收图像C++与Python相互传输的数据格式基于ROS利用客户端和服务端实现C++节点和python节点间传送图像的数据格式读取摄像头并发布Python读取摄像头#!/usr/bin/env python3# coding:utf-8import cv2import numpy as npimport rospyfrom std_msgs.msg原创 2022-04-21 16:00:03 · 5512 阅读 · 0 评论 -
opencv-python——基于标志物的道路逆透视变换
文章目录实现效果原图逆透视转换图标定+逆透视变换因为在做导盲犬的项目,在做导航的过程中需要将雷达与视觉融合在一起,通过视觉得到目标点相对于自身的距离,所以使用逆透视变换就是最好的方案。实现效果先上图看效果:原图逆透视转换图这里每个盲道块是25cm,有三个盲道块,经过逆透视变换后我就可以知道图上坐标与真实地面坐标的关系,从而给机器人发送对应的坐标位置,实现视觉的导航。标定+逆透视变换'''Descripttion: version: Author: Irving.GaoDate原创 2022-01-12 16:05:33 · 4369 阅读 · 2 评论 -
opencv-python——报错解决:error: (-210:Unsupported format or combination of formats) in ‘threshold‘
报错截图报错代码ret, res_th = cv2.threshold(res_m, 127, 255, cv2.THRESH_BINARY)cv2.imwrite("res_th.jpg", res_th)解决方法图像的格式一定要是np.uint8,而不是!!!!!.astype(np.uint8)转化一下即可解决!不能用.astype("int8")!!! res_m = res_m.astype(np.uint8) ...原创 2022-01-07 15:45:30 · 5107 阅读 · 0 评论 -
Realsense——同时运行两个realsense D435相机
import pyrealsense2 as rsimport cv2import numpy as npimport timeimport osimport sysclass Realsense2: def __init__(self, camera_id_list = [0], camera_width=1280, camera_height=720, camera_fps=30): self.camera_width = camera_width原创 2021-12-30 16:19:26 · 3598 阅读 · 8 评论 -
PaddlePaddle——多进程实现基于多摄像头的视觉巡线、目标检测、运动控制等任务并且实现数据共享
文章目录多进程主程序进程说明核心代码进程间传输图像运行效果多进程主程序进程说明本程序有三个子进程,分别为:1、巡线进程: 摄像头1的图像处理巡线进程2、目标检测进程: 摄像头0的目标检测进程3、决策控制进程: 基于前两个感知进程结果的决策控制进程核心代码import multiprocessing as mpimport numpy as npimport cv2import time import mathimport argparsefrom StereoCamera_原创 2021-12-19 15:37:23 · 3219 阅读 · 1 评论 -
OpenCV——问题解决:error: #error “This header with legacy C API declarations has been removed from OpenCV.
报错详情报错原因你当前使用的OpenCV版本中,legacy C API相关的定义声明已经被移除掉了,legacy的内容依然可以从legacy/constants_c.h头文件中获得。所以解决方法也显而易见,直接将报错的文件打开,将原来部分的报错头文件删除,换成legacy/constants_c.h即可。解决方法打开报错的cpp文件;找到报错的头文件位置:将报错的包含头文件代码删除,并更换为:#include "opencv2/imgcodecs/legacy/constan原创 2021-11-17 19:21:58 · 3426 阅读 · 2 评论 -
python-opencv——多线程之间实现图像数据共享,并对摄像头图像的获取、处理操作
简单粗暴,直接上代码,本质就是将每一步都分成一个进程进行管理,如果是单纯的简单图像处理,这样其实没有必要,这里适合一个甚至多个深度学习模型同时运行时,还要进行图像处理的复杂耗时任务。主体代码import numpy as npimport cv2from multiprocessing import Process, Queueimport timeimport osimport sys# 进程1:从摄像头中读取图像,并将数据放入quene中def cap_get(q): n.原创 2021-10-27 21:49:15 · 5477 阅读 · 2 评论 -
opencv-python——单通道二值图转化成三通道透明掩膜
文章目录1.RGB图转换成二值化图2.二值图合成三通道掩膜3.将三通道掩膜转换为透明掩膜放置到原图上color_image = cv2.imread("1.jpg")1.RGB图转换成二值化图hsvFrame = cv2.cvtColor(color_image, cv2.COLOR_BGR2HSV)# HSVcolor_lower = np.array(color_dist[color]["Lower"], np.uint8) color_upper = np.array(color_di原创 2021-10-22 22:01:33 · 3916 阅读 · 0 评论 -
Realsense-python——实现颜色识别和物体测距
文章目录本文采用的相机是Intel Realsense D435i。方法综述:首先通过OpenCV将物体通过阈值分割的方式提取出来后,画出物体矩形轮廓,测距时为避免外围物体和其他部分有交叠导致距离不准确的问题,只提取出物体中心的1/2区域进行50个随机采样点测距,并用中值滤波的方式稳定预测结果,经试验,该方法效果较好。object_DetectAndMeasure.pyimport pyrealsense2 as rsimport numpy as npimport cv2import t原创 2021-10-15 20:05:42 · 4871 阅读 · 8 评论 -
Realsense-python——获取RGB图、深度图并实现可视化和单点测距
文章目录对齐深度图和RGB图并可视化深度图本文采用的相机是Intel Realsense D435i。对齐深度图和RGB图并可视化深度图import pyrealsense2 as rsimport numpy as npimport cv2def show_colorizer_depth_img(): colorizer = rs.colorizer() hole_filling = rs.hole_filling_filter() filled_depth =原创 2021-10-14 21:34:27 · 10391 阅读 · 9 评论 -
opencv-C++——在ubuntu18.04环境下构建第一个工程
文章目录1.创建工程文件夹创建一个opencv C++程序创建CMake file3.编译4.执行在使用opencv C++之前,需要明白如何从0开始构建一个C++程序,而在Ubuntu系统中,我们常使用CMake工具进行构建,所以我们需要了解CMake工具的使用方法和使用思想。CMake使用指南OpenCV使用指南1.创建工程文件夹mkdir basic_opencv_project创建一个opencv C++程序touch DisplayImage.cppDisplayIma原创 2021-10-14 16:27:35 · 329 阅读 · 0 评论 -
opencv-python——通过cv2.distanceTransform()函数将距离转换成热力图
此转换一般可用于视觉、SLAM中的避障部分,将可以行使的区域二值化,然后再通过distanceTransform()函数实现对目标区域从距离中心到外部的梯度,再将其转换成可视化的灰度图和热力图即可。原理解析(1)目标图像二值化我们首先通过HSV阈值调节器提取出目标物体的HSV阈值,然后通过cv2.inRange函数提取出机器人可通过区域的阈值范围,得到二维平面的二值化图:inRange_hsv = cv2.inRange(hsv, color_dist['gray']['Lower'], col.原创 2021-03-13 16:40:05 · 9310 阅读 · 2 评论 -
opencv-python——调用摄像头录制并保存视频
调用摄像头录制并保存视频import numpy as npimport cv2cap = cv2.VideoCapture(0)fourcc = cv2.VideoWriter_fourcc(*'XVID')out = cv2.VideoWriter('output.avi',fourcc, 30.0, (640,480))while(cap.isOpened()): ret, frame = cap.read() if ret==True: frame =原创 2021-03-11 18:39:10 · 7555 阅读 · 0 评论 -
opencv-python——调用摄像头实现拍照
调用摄像头实现拍照按s键,拍照并保存;按q键,退出。自行更改照片保存的路径即可import cv2if __name__ == '__main__': i=0 cap=cv2.VideoCapture(0) while(1): ret ,frame = cap.read() cv2.imshow("capture", frame) k=cv2.waitKey(1) if k==ord('s'):原创 2021-03-11 18:33:50 · 1608 阅读 · 0 评论 -
Ubuntu18.04——python2安装opencv4.1版本并代替ROS自带的低版本opencv
软件环境Ubuntu 18.04系统ROS melodic查看安装ROS默认安装的CV2位置改个名,不要是cv2就ok:查看是否移除可以发现还有一个cv2的so文件,所以我们需要将这个也移除。改个名,万一以后要用可以便于恢复:sudo mv /usr/lib/python2.7/dist-packages/cv2.x86_64-linux-gnu.so /usr/lib/python2.7/dist-packages/cv2.x86_64-linux-gnu.so.bak可以看原创 2021-03-05 13:04:31 · 867 阅读 · 1 评论 -
ROS——发布摄像头节点并编写opencv图像处理节点(python)
文章目录软硬件环境硬件软件Opencv和ROS软硬件环境硬件树莓派4B(4G)乐视三合一体感深度相机软件Ubuntu 18.04ROS melodicOpencv和ROSOpenCV格式图片(或视频帧)和ROS数据格式图片(或视频帧)之间的转换。或者直白点书,通过ROS发送图片(Image)数据类型的消息(message)...原创 2021-03-04 14:56:31 · 8364 阅读 · 5 评论 -
opencv-python——使用mjpg-streamer实现实时视频流获取并进行远程图像处理操作
安装必要依赖包和软件依赖包sudo apt-get install subversion libv4l-dev libjpeg62-dev imagemagick libjpeg62-dev libjpeg8-devgit下载mjpg-streamer包git clone https://github.com/jacksonliam/mjpg-streamer进入mjpg-streamer/mjpg-streamer文件夹cd mjpg-streamer/mjpg-st原创 2020-08-22 21:04:00 · 8254 阅读 · 3 评论 -
python——采用os库实现遍历图像并opencv实现7种图像增强,并实现数据集扩充
在做机器学习结课大作业,需要对不多的数据集进行扩充和数据增强工作。文章目录图像处理特征增强遍历文件夹下的不同类别的图片完整代码图像处理特征增强本来还想做一个亮度的改变,但是感觉效果不好,故只采用了核函数实现了图像物体边缘的锐化,从而实现对目标物体边缘、色彩信息的增强。def img_process(img, img_class, img_num, class_dir_path): #1.图像锐化 kernel = np.array([[0, -1, 0], [-1, 5, -1].原创 2021-01-02 17:25:43 · 780 阅读 · 0 评论 -
opencv-python——通过掩膜处理只提取照片中局部的有效图像
想通过掩膜得到特定区域的图像,在识别时只得到关键部分的图像信息,忽略其他部分的影响。文章目录原图通过numpy构建掩膜选择掩膜区域合成图像完整代码原图通过numpy构建掩膜构建黑色的像素矩阵mask = np.zeros(img.shape, dtype=np.uint8)选择掩膜区域选择(白色无黑色掩膜的区域)即需要显示的位置mask[100:480, 140:500] =255 # 高起始:高结束, 长起始:长结束 ,且左上角为起始点合成图像将两个图像做and操作.原创 2020-09-22 21:18:58 · 6868 阅读 · 0 评论 -
opencv-python——如何从代码角度提高摄像头帧率
文章目录运行一段opencv-python调用摄像头实现Apriltag识别的程序平均执行速度:0.060s/帧使用多进程,将识别代码放在另外的进程中执行平均执行速度:0.048s/帧,提速了20%将视频读取和识别代码分别放进两个子线程执行运行一段opencv-python调用摄像头实现Apriltag识别的程序def Aptag_detect(cap): # 读取视频帧,ret标志读取的结果,frame为读取到的视频帧图像 start = time.time() ret原创 2020-09-15 14:24:45 · 4131 阅读 · 0 评论 -
opencv-python——调用摄像头或导入视频实现颜色识别并画框
采用opencv进行颜色识别有个好处就是他的框可以是具有角度的长方体框,不局限于平行点的文章目录颜色识别实现过程1.调用摄像头、导入视频或读入照片2.找出所需颜色对应的HSV阈值3.找出二值化后的图片中的特征点并进行画框完整代码函数详解findContours()函数颜色识别实现过程1.调用摄像头、导入视频或读入照片调用摄像头import osimport cv2import numpy as npcap = cv2.VideoCapture(0)while True: ret,.原创 2020-08-20 17:39:42 · 6354 阅读 · 4 评论 -
opencv-python——创建黑白图片并实现色彩反转
文章目录单通道的黑白图片三通道的黑白照片颜色取反单通道的黑白图片#size: [高,长]#0为黑色white_img = np.zeros([359, 755], dtype=np.uint8)三通道的黑白照片white_img = np.zeros([359, 755,3],np.uint8)颜色取反...原创 2020-08-20 11:27:26 · 7394 阅读 · 0 评论 -
opencv-python——将单一的图片背景颜色换成其他照片并实现照片融合
此功能类似P图,将固定颜色的背景通过HSV阈值调节,扣出人物的区域(mask),并通过位操作实现风景照与mask的融合,最后经过同样的操作将人物图像扣除,通过cv2.add()或cv2.addWeighted()实现图片的叠加,当然要注意图片的尺寸问题哦~在这个过程中,感谢锟琨的帮助!文章目录功能介绍实现过程1.读取两张图片并建立显示窗口2.通过HSV调节,提取出背景颜色的阈值范围并记录在color_dist里使用HSV阈值调节器实现阈值调节3.提取背景和人物的二值化区域4.通过位操作实现掩膜处理5.原创 2020-08-19 11:42:10 · 4195 阅读 · 2 评论 -
opencv-python——调用python库通过电脑摄像头实现人脸识别
文章目录1.利用opencv打开摄像头2.调用摄像头实现人脸识别图像识别位置信息函数讲解按键函数——cv2.waitkey()视频流获取——cv2.VideoCapture().read()1.利用opencv打开摄像头import cv2# 1.打开摄像头,读取摄像头拍摄到的角度vedio_capter = cv2.VideoCapture(0)# 2.循环不停的获取摄像头的画面,并做进一步的处理while True: # 2.1获取摄像头拍摄到的画面,并做进一步的处理 ret原创 2020-08-14 09:44:59 · 896 阅读 · 2 评论 -
opencv-python——计算机视觉基础及简单代码实现
在博学谷上过一下计算机视觉的基本概念和原理,直接上图。文章目录CV基础概念RGB三原色模式计算机显示模式:24bite模式重点问题回答1.彩色图片的一个的像素点是怎么表示的?2.如何用opencv中表示点、线和图片?灰度图像有什么用opencv基础代码实操1.使用opencv实现简单图片生成2.使用opencv实现简单的图片信息读取3.将图像转换为灰度图像CV基础概念RGB三原色模式计算机显示模式:24bite模式重点问题回答1.彩色图片的一个的像素点是怎么表示的?2.如何用ope.原创 2020-08-13 18:07:04 · 1414 阅读 · 1 评论 -
OpenCV报错解决:error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow‘
太坑了!太坑了!VS code太坑了!使用VS code运行程序,报错:很简单的程序:# -*- coding:utf-8 -*-import cv2image = cv2.imread('622.jpg') # 根据路径读取一张图片cv2.imshow("BGR", image) # 显示图片报错如下:cv2.error: OpenCV(4.3.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:37.原创 2020-08-11 16:38:01 · 3289 阅读 · 1 评论 -
opencv-python——图片的HSV和RGB滚动条阈值分析器
在很多时候,我们需要找到图片的特定通道的阈值,就需要通过调整参数来尝试和确定数值。如果通过拖动的滚条来调节阈值,就可以提高调试效率,缩短试错时间。文章目录opencv-python的滚动条API创建滑动条——cv2.createTrackbar()获取滑动条的数值——cv2.getTrackbar()阈值分析器HSV图像阈值分析器运行展示RGB颜色分析器运行展示opencv-python的滚动条API创建滑动条——cv2.createTrackbar()cv2.createTrackbar(tr.原创 2020-08-07 10:47:56 · 6690 阅读 · 2 评论 -
opencv-python——将视频转换为每帧的图片,并遍历文件夹中的所有图片
文章目录逐帧读取视频并保存为图片遍历每一帧并进行自选操作逐帧读取视频并保存为图片# -*- encoding: utf-8 -*-#导出avi视频的每一帧,并保存在images路径下import cv2import os images = './image/' ##保存路径if not os.path.exists(images): os.mkdir(images) cap = cv2.VideoCapture("0723_1340.avi") #视频位置c=0while(原创 2020-07-24 12:41:03 · 1114 阅读 · 0 评论