opencv学习笔记
三个臭皮姜
这个作者很懒,什么都没留下…
展开
-
Opencv-Python数据增强
Opencv-Python数据增强常见的数据增强操作有:按比例放大或缩小图片、旋转、平移、水平翻转、改变图像通道等。1.按比例放大和缩小 扩展缩放只是改变图像的尺寸大小。OpenCV 提供的函数 cv2.resize()可以实现这个功能。图像的尺寸可以自己手动设置,也可以指定缩放因子。可以选择使用不同的插值方法。在缩放时我们推荐使用 cv2.INTER_AREA,在扩展时我们推荐使用 v2.INTER_CUBIC(慢) 和 v2.INTER_LINEAR。默认情况下所有改变图像尺寸大小的操作使用的原创 2022-02-18 15:21:05 · 3837 阅读 · 1 评论 -
多线程-摄像头定位车牌的位置
继上一篇:opencv-python打开摄像头定位车牌之后,我发现摄像头有时会比较卡顿,显然这不是我想要的效果。产生卡顿的原因在于:摄像头读取到的有很多帧,但是如果每一帧我们都对其做各种滤波、腐蚀、膨胀等操作,那显然计算是跟不上摄像头捕捉的速率的。那么我们就引入了多线程。想法如下:把摄像头显示的部分放在主线程,然后开启一个线程去处理图像。实现代码如下:import cv2import threadingcap = cv2.VideoCapture(1) # 创建一个 VideoCaptur原创 2021-07-07 21:16:08 · 269 阅读 · 1 评论 -
opencv-python车牌颜色判断
在截取出车牌区域之后,我们需要判断车牌是什么颜色。我的思路是:根据不同颜色的hsv阈值取掩膜,掩膜得到的白色像素值最大的就是对应的颜色。取hsv颜色的阈值参考我之前的博客:Opencv+python打开摄像头或对图片拖动滑动条取颜色阈值主要区分3种颜色的车牌:蓝色、黄色和绿色。得到的阈值如下:lower_blue = np.array([100, 43, 46])upper_blue = np.array([124, 255, 255])lower_yellow = np.array([15原创 2021-07-04 10:36:06 · 3948 阅读 · 4 评论 -
opencv-python打开摄像头定位车牌
根据车牌的特点定位车牌。import cv2cap = cv2.VideoCapture(1) # 创建一个 VideoCapture 对象while (cap.isOpened()): # 循环读取每一帧 ret_flag, frame = cap.read() # 返回两个参数,第一个是bool是否正常打开,第二个是照片数组,如果只设置一个则变成一个tuple包含bool和图片 # 高斯去噪 image = cv2.GaussianBlur(frame, (3,原创 2021-07-03 17:33:50 · 754 阅读 · 0 评论 -
Opencv批量修改图片尺寸并保存
最近要做一个深度学习项目,但是发现数据集大小不太规整,或者是不是我想要的尺寸,于是决定批量修改统一大小。【原来的数据】原来的数据大小是20×20的,我想要的是32×32大小的。【修改尺寸后的数据】可以看到尺寸明显变大了。脚本如下:import cv2import os# 原始图片文件夹路径ori_path = 'D:\\pycharm\\certify_code_detect\\datasets\\car_data\\0\\'# 修改后保存的文件夹路径save_path = 'D原创 2021-06-30 22:32:31 · 2768 阅读 · 6 评论 -
Opencv-Python车牌字符切割
声明:本篇主要代码参考自这篇文章:https://blog.csdn.net/m0_38024433/article/details/78650024在此基础上作了一些修改。import cv2 as cvimg = cv.imread('test.png', 1)cv.imshow('origin', img)gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) # 灰度化cv.imshow('gray', gray)blur = cv.bilater原创 2021-06-30 15:38:22 · 480 阅读 · 0 评论 -
Opencv-python函数参数解读记录(带例子)持续更新
一.膨胀操作–cv2.dilate()格式:cv2.dilate(src, kernel, iteration)参数含义:(部分,只是写了比较常用的)src – 目标图片kernel – 进行操作的核,默认为3×3iterations – 腐蚀次数,默认为1使用举例:dilate = cv2.dilate(img,(3,3),iterations=3)img为上一步操作的图片名称。二.腐蚀操作–cv2.erode()cv2.erode(src, kernel, iteration)原创 2021-05-24 21:37:28 · 697 阅读 · 0 评论 -
Opencv-python根据阈值找出车牌的位置(目前只是蓝色车牌)
目前做的只是蓝色车牌,有一定的识别能力,但有些图片识别效果不太好。先记录一下,后面可能会用到。#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/5/24 19:23# @Author : 若谷# @File : license_number_location.py# @Software: PyCharmimport cv2 as cvimport numpy as npimport imutils# 导入图片img原创 2021-05-24 21:17:34 · 418 阅读 · 1 评论 -
opencv-python根据阈值进行二值化
继上一篇文章Opencv+python打开摄像头拖动滑动条取颜色阈值得到阈值之后,我们需要对图片进行二值化,怕自己忘了不好找,特此记录一下。#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/5/24 19:38# @Author : 若谷# @File : 根据选出的阈值二值化.py# @Software: PyCharmimport cv2import numpy as npframe = cv2.imread('./原创 2021-05-24 19:54:30 · 424 阅读 · 2 评论 -
Opencv+python打开摄像头或对图片拖动滑动条取颜色阈值
先看看效果:接着上代码:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/5/21 19:12# @Author : 若谷# @File : my_track_bar.py# @Software: PyCharmimport numpy as npimport cv2# 打开摄像头:0为本地摄像头,1为外接摄像头cap = cv2.VideoCapture(1)def nothing(x): pass原创 2021-05-21 19:58:06 · 1365 阅读 · 0 评论 -
Python+opencv打开摄像头,使用按键拍照
曾经部分参考过某篇文章,但是太久了找不到出处了。import cv2cap = cv2.VideoCapture(1) # 创建一个 VideoCapture 对象,1为外接的USB摄像头flag = 1 # 设置一个标志,用来输出视频信息num = 1 # 递增,用来保存文件名while (cap.isOpened()): # 循环读取每一帧 ret_flag, Vshow = cap.read() # 返回两个参数,第一个是bool是否正常打开,第二个是照片数组,如果只设置原创 2021-05-21 18:48:53 · 2330 阅读 · 0 评论 -
使用opencv给图片添加水印
先来看下效果:【原图】【我的水印】【最终效果】有模有样了是不是?这里简单解释一下原理或者说是我的思路:制作这个水印时,我第一反应是使用opencv里面图像重叠混合的操作,通过调整不同的权值可以使图片起到一个透明的效果,从而看起来像是一个水印。这个图像混合的操作,使用的是cv2.addWeight()函数,但使用这个函数有个弊端:加权融合的图片大小尺寸必须相同。一般情况下,水印是比我们的图片小的,所以我们不可能去缩小我们的图片,这会使我们的图片质量降低。但也并非没有办法,那就是从我们的图片中原创 2020-12-08 22:00:48 · 1884 阅读 · 0 评论 -
opencv报错:error: (-215:Assertion failed) src.type() == CV_8UC1 in function ‘cv::adaptiveThreshold‘
报错代码段为:binary = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 25, 15)之前没用过这个自适应的阈值设置,这个需要以灰度图读入,但是我是以彩色图读入的,即:把0改为1即为以灰度图读入:改过来之后就不会报错了。...原创 2020-11-23 19:10:22 · 7053 阅读 · 2 评论 -
解决This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake
在运行以下两行代码时:报了如下错误:error: OpenCV(3.4.3) C:\projects\opencv-python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_EN原创 2020-08-30 19:08:35 · 7294 阅读 · 4 评论 -
AttributeError: module ‘cv2.cv2‘ has no attribute ‘TrackerCSRT_create‘
今天在运行迪哥的opencv实战课程的配套代码时,发现报了如下错误:百度查了一下,说是如果要使用OpenCV集成的跟踪器,就必须安装opencv-contrib-python包。于是在cmd窗口里输入pip list 查了一下,果然没有安装这个包。于是手动装了一下,再次运行,报错就没了!这里提供我装好了的包链接:https://pan.baidu.com/s/1WqnR7Va3p_q4ufNBLZVzEA提取码:cv33官网离线下载是比较慢的。下载好离线包之后把它放在对应的路径下,我的路径原创 2020-08-30 11:43:04 · 593 阅读 · 0 评论 -
Opencv遇到的问题2--ValueError: not enough values to unpack (expected 3, got 2)
今天运行程序时,报了这个错:ValueError: not enough values to unpack (expected 3, got 2)根据提示发现错误在这一行:也就是说应该要返回3个参数,但是只返回了两个,百度了一下,有人说是因为Opencv版本太高,需要用pip install opencv-python==3.4.3.18实现降级(我的opencv-python版本为4.几),试了一下,之前的错误解决了,但是又报了一个错:出现这个问题的原因可能是numpy版本变低的问题,由于要安原创 2020-08-08 10:29:48 · 1296 阅读 · 0 评论