opencv
用来记忆opencv实现的各种例子、想法
xiao黄
缓慢而坚定的生长
感兴趣的方向:复杂网络、社区发现(检测)、图神经网络、深度学习、节点重要性
目前研究方向:故障诊断(电网、AUV等),Simulink、PSCAD、AMESim建模等
展开
-
python + opencv试纸缺陷检测——思路
用于检测试纸生产线对合格与不合格产品进行分拣,实时检测。先要对整个区域进行分割,只对研究对象进行处理,是否用ROI?1)选择数据:将数据分成三组:训练数据、验证数据、测试数据2)模型数据:使用训练数据来构建使用相关特征的模型3)验证数据:使用验证数据接入模型4)测试数据:使用测试数据检查被验证模型的表现5)使用模型:用完全训练好的模型在新数据上做预测6)调优模型:使用更多数据、不同的...原创 2019-10-24 21:05:27 · 3303 阅读 · 1 评论 -
图像处理——验证码识别
opencv + Tessert-OCR安装指令:pip install pytesseractTesseracr-OCR 验证码识别1、预处理——去除干扰线与点2、不同的结构元素中选择3、Image与numpy array相互转化4、识别与输出OCR(Optional Character Recognition,光学字符识别)是通过扫描字符,然后通过其形状将其翻译成电子文本的过程...原创 2019-11-12 08:58:30 · 902 阅读 · 0 评论 -
python + opencv图像处理——人脸检测
HAAR和LBP数据这是我使用的两个数据链接:https://pan.baidu.com/s/1_JADYabXD1aUs_fHCH9YEQ提取码:wj6g复制这段内容后打开百度网盘手机App,操作更方便哦from matplotlib import pyplot as plt from cv2 import cv2 as cvimport numpy as np #opencv...原创 2019-11-11 09:29:12 · 3160 阅读 · 0 评论 -
python + opencv图像处理——分水岭算法
基于距离的分水岭分割流程:1、输入图像2、灰度(消除噪声)3、二值化4、距离变换5、寻找种子6、生成Marker7、分水岭变换8、输出图像from matplotlib import pyplot as plt from cv2 import cv2 as cvimport numpy as np def watearshel_demo(): print(img....原创 2019-11-10 09:53:49 · 1487 阅读 · 0 评论 -
python + opencv图像处理——其他形态学操作
顶帽、黑帽、形态学梯度顶帽(tophat)是 源图像与开操作之间的差值图像黑帽(blackhat)是闭操作图像与源图像的差值图像形态学梯度(Gradient)1、基本梯度:基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度有被称为基本梯度2、内部梯度:是用源图像减去腐蚀之后的图像得到差值图像,称为图像的内部...原创 2019-11-09 09:15:51 · 343 阅读 · 0 评论 -
python + opencv图像处理——开闭操作
开操作(open)1、图像形态学的主要操作之一,基于膨胀与腐蚀操作组合而成;2、主要是应用在二值图像分析中,灰度图像亦可;3、开操作=膨胀+腐蚀,输入图像+结构元素;可消除图像中小的干扰区域闭操作(close)1、图像形态学的主要操作之一,基于膨胀与腐蚀操作组合而成;2、主要是应用在二值图像分析中,灰度图像亦可;3、闭操作=膨胀+腐蚀,输入图像+结构元素;可填充小的封闭区域开闭...原创 2019-11-08 22:06:27 · 872 阅读 · 0 评论 -
python + opencv图像处理——膨胀与腐蚀
图像形态学:①是图像处理学科的一个单独分支学科②灰度与二值图像重要手段③是由数学的集合论等相关理论发展起来的膨胀(Dilate)可认为是最大值滤波33的结构元素/模板用覆盖住的最大值代替中心像素膨胀的作用:①对象大小增加一个像素(33)②平滑对象边缘③减少或者填充对象之间的距离注意:腐蚀与膨胀都支持任意形状的结构元素腐蚀(Erode)最小值替换中心像素腐蚀的作用:①...原创 2019-11-07 20:57:16 · 1031 阅读 · 0 评论 -
python + opencv图像处理——对象测量
1、弧长与面积①轮廓发现;②计算每个轮廓的弧长与面积,像素单位;2、多边形拟合①获取轮廓的多边形拟合结果(approxPolyDP)espilon越小折线越逼近真实形状close是否为闭合区域3、几何矩计算①原点矩;②中心矩;③图像重心坐标;注:OTSU二值化可能会丢失数据# 对象测量from matplotlib import pyplot as plt from c...原创 2019-11-06 09:08:59 · 835 阅读 · 0 评论 -
python + opencv图像处理——轮廓发现
轮廓发现使基于图像边缘提取的基础寻找对象轮廓的方法,所以便于提取的阈值选定会影响最终轮廓发现的结果API介绍:findContours 发现轮廓drawContours 绘制轮廓from matplotlib import pyplot as plt from cv2 import cv2 as cvimport numpy as np # canny边缘提取def edge_...原创 2019-11-05 15:44:16 · 945 阅读 · 0 评论 -
python + opencv图像处理——圆检测
霍夫圆检测原理1、从平面坐标到极坐标转换三个参数C(x0,y0,r),其中x0,y0是圆心;2、假设平面坐标的任意一个圆上的点,转换到极坐标中,C(x0,y0,r)处有最大值,霍夫变换正是利用这个原理实现圆检测;3、因为霍夫圆检测对噪声比较敏感,所以首先要对图像做中值滤波;4、基于效率考虑,opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步:①检测边缘,发现可能的圆心;②...原创 2019-11-04 09:08:15 · 1830 阅读 · 0 评论 -
python + opencv图像处理(十九)——边缘提取
canny算法(在opencv中有相应的API)边缘检测算法一个很好的边缘检测器canny算法介绍——5步1、高斯模糊——GaussianBlur2、灰度变换——cvtColor3、计算梯度——Sobel/Scharr4、非最大信号抑制5、高低阈输出二值图像:T1,T2都为阈值,凡是高于T2的都保留,凡是小于T1的都丢弃,从高于T2的像素出发,凡是大于T1的而且相互连接的都保留,最...原创 2019-11-03 21:16:52 · 6993 阅读 · 2 评论 -
python + opencv图像处理(十八)——图像梯度
一阶导数与Soble算子二阶导数与拉普拉斯算子二阶导数:在二阶导数的时候,最大变化出的值为零即边缘是零值(根据此理论就可以提取边缘)。from matplotlib import pyplot as plt from cv2 import cv2 as cvimport numpy as np #图像梯度:sobel算子def sobel_image(image): gra...原创 2019-10-31 09:40:05 · 569 阅读 · 0 评论 -
python + opencv图像处理(十七)——图像金字塔
图像金字塔原理高斯金字塔与拉普拉斯金字塔reduce = 高斯模糊+降采样expand = 扩大 + 卷积PyrDown:降采样PyrUp:还原from matplotlib import pyplot as plt from cv2 import cv2 as cvimport numpy as np # 高斯金字塔def pyramid_demo(image): ...原创 2019-10-30 11:48:12 · 591 阅读 · 0 评论 -
python + opencv图像处理(十六)——超大图像二值化
分块全局阈值和局部阈值from matplotlib import pyplot as plt from cv2 import cv2 as cvimport numpy as np def big_image_binary(image): print(image.shape) #超大图像,屏幕无法显示完整 cw = 256 # 分块的大小 ch = 2...原创 2019-10-29 20:47:07 · 537 阅读 · 0 评论 -
pyhton +opencv图像处理(十五)——图像二值化
二值图像(Binary Image)彩色图像:三个通道:0-255,0-255,0-255,有2^24位空间灰度图像:一个通道:0-255,共有256种颜色二值图像:只有两种颜色,黑色和白色(0和1)图像二值化方法:1、全局阈值2、局部阈值from matplotlib import pyplot as plt from cv2 import cv2 as cvimport nu...原创 2019-10-28 17:11:54 · 452 阅读 · 0 评论 -
python + opencv图像处理(十四)模板匹配
模板匹配原理:(模式识别中最简单的一个识别方法,就是图像处理中最简单的)模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域;模板匹配需要一个模板图图像T(给定的子图像);需要一个待检测的图像——源图像S;工作方法:在待检测图像上,从左到右,从上到下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。from matplotlib import pyplot as ...原创 2019-10-27 09:10:30 · 449 阅读 · 0 评论 -
python + opencv图像处理(十三)——直方图的反向投影
HSV 与RGB色彩空间H:色调(0-360°)S:饱和度(0.0-1.0)值越大越饱和V:亮度(0-255)from cv2 import cv2 as cvimport numpy as np from matplotlib import pyplot as plt # 直方图反向映射def back_projection_demo(): sample = cv.i...原创 2019-10-26 20:21:16 · 404 阅读 · 0 评论 -
python + opencv图像处理(十二)——直方图应用
直方图均衡化直方图比较调整对比度:1、整体;2、局部都是对灰色图像from cv2 import cv2 as cvimport numpy as np # 直方图均衡化都是针对灰色图像# 整体def equalHist_demo(image): gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) dst = cv.eq...原创 2019-10-25 13:20:19 · 250 阅读 · 0 评论 -
python +opencv图像处理(十一)——图像直方图
Bin的大小=图像中不同像素值得个数/Bin的数目对于14位的图像,创建256个bin直方图bin size = (2^14)/256 = 64h(0) ← 0 ≤ I(u,v) < 64h(1) ← 64 ≤ I(u,v) < 128…h(j) ← aj ≤ I(u,v) < aj+1…h(255) ← 16320 ≤ I(u,v) < 16384fro...原创 2019-10-24 14:21:53 · 494 阅读 · 0 评论 -
python + opencv(十)——边缘保留滤波
from cv2 import cv2 as cvimport numpy as np # 双边模糊 def bi_demo(image):# 高斯双边模糊:# d:即 distance,常规为 0 ,像素的邻域直径,可有sigmaColor和sigmaSpace计算可得;# sigmaColor:尽量取大,目的将小的差异模糊掉,噪声去掉# sigmaS...原创 2019-10-23 19:33:26 · 453 阅读 · 0 评论 -
python + opencv图像处理(九)高斯模糊
from cv2 import cv2 as cvimport numpy as np def clamp(pv): # 确保这个随机数在0-255之间 if pv > 255: return 255 elif pv < 0: return 0 else: return pvdef gaussian_n...原创 2019-10-23 12:10:40 · 1006 阅读 · 0 评论 -
python + opencv图像处理(八)——模糊操作
模糊操作基本原理:1、基于离散卷积2、定义好每个卷积核3、不同卷积核得到不同的卷积效果4、模糊是卷积的一种表象分别有:均值模糊、中值模糊、自定义模糊from cv2 import cv2 as cvimport numpy as np # 均值模糊 可以去噪def blur_demo(image): dst = cv.blur(image,(5,5)) # 水平和垂直...原创 2019-10-22 17:06:37 · 740 阅读 · 0 评论 -
python + opencv 图像处理(七)——ROI与泛洪填充
ROI (Regiom of Interest)是指图像中的一个矩形区域,可在该区域对其进行操作,而不会作用到整个图中。比如人脸识别…泛洪填充(Flood Fill)通常泛洪填充需要从一个点开始,这个点可以随机选择的一点,但是一定要在填充区域内部,然后它就会进行四领域或者把整个领域寻找对周围像素完成填充。from cv2 import cv2 as cv #导入opencvimport n...原创 2019-10-22 15:42:09 · 1336 阅读 · 0 评论 -
python + opencv 图像处理(六)——像素运算
对图像进行“加减乘除、平均值方差、逻辑运算、调节对比度亮度”。# 像素运算from cv2 import cv2 as cvimport numpy as np # 加def add_demo(m1,m2): dst = cv.add(m1,m2) cv.imshow('add_demo',dst)# 减def subtract_demo(m1,m2): ...原创 2019-10-21 10:38:18 · 527 阅读 · 0 评论 -
python + opencv 图像处理(五)——颜色追踪
追踪视频中的颜色对图片通道的分离与合并from cv2 import cv2 as cvimport numpy as np def video_demo(): # VideoCapture.open capture = cv.VideoCapture('C:\\pictures\\videos\\1.mp4') while True: ret...原创 2019-10-21 10:24:05 · 1890 阅读 · 0 评论 -
python + opencv图像处理(四)——色彩空间
常见色彩空间RGB、HSV、HIS、Ycrcb、YUV在opencv中都提供了相应的API最常见的有两个HSV和RGB、YUV和RGBfrom cv2 import cv2 as cvdef color_space_demo(image): gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)#转换成灰度图像 cv.imshow("gr...原创 2019-10-20 08:56:48 · 327 阅读 · 0 评论 -
python + opencv 图像处理(三)—— 简单对像素进行处理
from cv2 import cv2 as cvimport numpy as np def access_pixels(image): #属性读取 print(image.shape) height = image.shape[0] width = image.shape[1] chanmels = image.shape[2] print('w...原创 2019-10-19 09:41:30 · 489 阅读 · 0 评论 -
python + opencv 图像处理(二)——读取视频
from cv2 import cv2 as cvimport numpy as npdef video_demo(): #读取视频capture = cv.VideoCapture(0) # 读摄像头,也可以读一些文件 0 指的是usb摄像头,读取其他视频可参考opencv2.pywhile True:ret,frame = capture.read()frame = cv.flip...原创 2019-10-18 17:03:06 · 293 阅读 · 0 评论 -
Python + OpenCV 图像处理(一)——图片读取
Python + OpenCV (一)图片读取记录自己的学习过程。原创 2019-10-18 16:48:34 · 472 阅读 · 0 评论