
python
Demo.demo
码海无涯,回头是家。
展开
-
【OpenCV3.3+Python3.6】图像融合之加权平均融合法
最近在做图像融合这块的工作,对于图像融合也是初出茅庐, 想开始学习了最简单融合算法:加权融合算法。就拿出来做个笔记,方便后续整理,以及读者学习方便加权平均融合法加权平均融合法是将源图像像素的灰度值进行线性加权平均,生成新的融合图像,是一种最简单、直接的图像融合方法,融合过程如下图所示,一般形式如下:F(????, ????) = ????a·A(????, ????) + ????????∙ B(????, ????) ...原创 2020-01-03 16:43:42 · 10429 阅读 · 1 评论 -
【OpenCV3.3+Python3.6】图像形态学操作之顶帽,黑帽以及形态学梯度
形态学操作1.顶帽:原图与开操作之间的差值图像2.黑帽:闭操作与源图像的差值图像3.形态学梯度 基本梯度:基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法。 内部梯度:用原图减去腐蚀之后的图像得到的差值图像 外部梯度:图像膨胀之后再减去原来的图像得到的差值图像代码奉上:import...原创 2019-11-25 10:58:47 · 413 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】直方图反向投影
直方图反向投影直方图反向投影可以用来做图像分割,或者在图像中找寻我们感兴趣的部分。简单来说,它会输出与输入图像(待搜索)同样大小的图像,其中的每一个像素值代表了输入图像上对应点属于目标对象的概率。用更简单的话来解释,输出图像中像素值越高(越白)的点就越可能代表我们要搜索的目标 (在输入图像所在的位置)。opencv中使用函数 cv2.calcBackProject()直接实现反向投影...原创 2019-11-24 21:11:16 · 275 阅读 · 1 评论 -
【OpenCV3.3+Python3.6】超大图像二值化方法
超大图像二值化方法顾名思义,超大图像二值化方法就是处理比较大的一些图像,先对图片进行分块,然后进行二值化处理,二值化可以分为2种全局阈值二值化与局部阈值二值化处理1.全局阈值二值化处理:ret,dst=cv2.threshold(roi,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)#全局阈值具体用法可以参考之前博客 【OpenCV3.3...原创 2019-11-24 20:25:46 · 297 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】利用python来自动识别验证码
自动识别验证码说到这里,验证码是生活上网中比较常见的一个东西,现在来做一个分享,利用代码来实现自动识别验证码准备工作:1.安装 pytesseract库、tesseract库和PIL库,直接在pycharm中安装即可2.安装Tesseract-OCR下载地址:Tesseract-OCR然后点击下载之后 的exe文件进行安装,按部就班的进行即可,注意记住安装的路径...原创 2019-11-24 19:36:54 · 658 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像模板匹配
模板匹配模板匹配是在整个图像区域发现与给定子图像匹配的小块区域,先需要一个模板图像T(给定的子图像)另外需要一个待检测的图像(源图像S )模板匹配原理:在待检测图像上,从左至右,从上至下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大opencv相关方法使用 用来度量相似程度(1)平方不同(2)归一化平方(3)相关性不同(4)相关性因子在opencv中利用函...原创 2019-11-24 12:23:47 · 527 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像金字塔
图像金字塔图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。如下图所示。常用的图像金字塔有高斯金字塔(Gaussian pyramid)和拉普拉...原创 2019-11-24 11:57:56 · 221 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像的梯度
图像的梯度1.一阶导数与Sobel算子Sobel算子:首先 x方向梯度 再算y方向梯度*addWeighted()函数是将两张相同大小,相同类型的图片融合的函数。函数原型:cv2.AddWeighted( src1, alpha,src2, beta,gamma, dst );参数说明:(1)src1:输入的第一个(2)alpha:第一个图片的权重(3)src2:输...原创 2019-11-24 11:44:03 · 273 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】形态学操作之开闭操作
形态学操作之开闭操作形态学开闭操作其实与之前的膨胀与腐蚀有一定的关系1.开操作图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的,主要应用在二值图像分析中,灰度图像即可开操作=腐蚀+膨胀,输入图像+结构元素开操作可以消除图像中的干扰区域,不会破坏结构2.闭操作图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的 主要应用在二值图像分析中,灰度图像即可开操...原创 2019-11-24 11:17:02 · 742 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像轮廓检测
图像轮廓检测轮廓检测的原理是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现的结果api介绍findContours发现轮廓 drawContours绘制轮廓 1.函数原型:cv2.findContours(image, mode, method, contours=None, hierarchy=None, offset=Non...原创 2019-11-23 21:33:35 · 620 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像圆检测
图像圆检测图像圆检测,顾名思义,就是把图像中的圆形状的东西检测出来。霍夫圆检测原理 :霍夫圆检测对噪声比较敏感,所以首先需要对图像做中值滤波,基于效率考虑,opencv中实现的霍夫变换圆检测是基于图像梯度的实现,分为两步: 1.检测边缘,发现可能的圆心 2.基于第一步的基础上从候选圆心开始计算最佳半径大小opencv中利用HoughCircles()函...原创 2019-11-23 21:10:46 · 570 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像直线检测
图像直线检测图像直线检测,顾名思义,就是检测图像中的直线或者直线段。OpenCV中的HoughLines和HoughLinesP函数可以完成直线检测(1)HoughLines函数:使用的是标准的Hough变换函数原型:HoughLines(image, lines,rho, theta, threshold, srn=0, stn=0, min_theta = 0,max_thet...原创 2019-11-23 20:53:32 · 1109 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像二值化处理函数cv2.threshold
图像二值化在图像处理中经常用到二值化,图像的二值化就是将图像上的像素点的灰度值设置为0 或255。主要来讲一下图像二值化的函数cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下:cv2.threshold (src, thresh, maxval, type) cv2.threshold (源图片, 阈值, 填充色, 阈值类型)参数...原创 2019-11-22 16:55:01 · 984 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】canny边缘检测
canny边缘检测算法canny边缘检测算法介绍canny是边缘检测算法在1986年提出,很好的一个边缘检测器,很常用也很实用的图像处理方法canny算法步骤 #1.高斯模糊-GaussianBlur #2.灰度转换-cvtColor #3.计算梯度-Sobel/Scharr #4.非最大信号抑制 #5.高低阈值输出二值图像import ...原创 2019-11-21 10:18:23 · 249 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】形态学操作之膨胀与腐蚀
图像形态学图像处理学科的一个单独分支学科,灰度与二值图像处理中的重要手段,是由数学的集合论等相关理论发展起来的膨胀与腐蚀 识别物体膨胀或运算 腐蚀与运算膨胀的作用:对象大小增加一个像素(3x3)平滑对象边缘腐蚀的作用对象大小减小1个像素平滑对象边缘弱化或者分割图像之间的半岛型连接import cv2import numpy as npdef ero...原创 2019-11-20 21:36:44 · 250 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】对象的测量:面积、多边形拟合
对象测量弧长与面积轮廓发现计算每个轮廓的弧长与面积,像素单位多边形拟合获取轮廓的多边形拟合结果approxPolyDP 多边拟合函数 #contour #epsilon越小越折线越逼近真实形状 #close 是否为闭合区域几何矩计算原点矩中心矩图像的重心坐标#对象测量#弧长与面积 #轮廓发现 ...原创 2019-11-20 10:50:37 · 1219 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像直方图的应用
直方图的应用直方图均衡化如果一副图像的像素占有很多的灰度级而且分布均匀,那么这样的图像往往有高对比度和多变的灰度色调。直方图均衡化就是一种能仅靠输入图像直方图信息自动达到这种效果的变换函数。它的基本思想是对图像中像素个数多的灰度级进行展宽,而对图像中像素个数少的灰度进行压缩,从而扩展像元取值的动态范围,提高了对比度和灰度色调的变化,使图像更加清晰。直方图局部均衡化全局直...原创 2019-11-20 10:26:37 · 381 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图像直方图
图像直方图1.直方图的介绍直方图就是用来统计一幅图像各个亮度的像素的个数,并在一个2维图像上显示。横向(x轴方向)是灰度值,最左边像素值为0(黑),最右边像素值为255(白),纵向(y轴方向)是各像素值在图像中出现的个数。一张照片的明暗可以通过直方图看出来,也就是说我们可以通过直方图知道图像的欠曝和过曝。对于欠曝,形象的可以理解图像太暗了,过曝可理解为图像太亮了。2.直方图的代码学习...原创 2019-11-19 21:50:27 · 255 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】边缘保留滤波
边缘保留滤波之前的几种图像卷积处理之后图像的边缘信息会丢失,所谓图像的边缘信息,不是指的图像四个边的那一部分的信息,而是图像在像素层面上,像素值跃迁,差异值比较大的地方。而边缘保留滤波算法(EPF Edge Preserving Filter)则可以解决这个问题,滤波之后的输出可以完整的保存图像整体边缘的信息。常见的边缘保留滤波算法有:1.高斯双边滤波2.均值迁移滤波主要来看一...原创 2019-11-19 21:42:54 · 344 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图片高斯模糊
高斯模糊高斯模糊(英语:Gaussian Blur),通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯模糊也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现)。 从数学的角度来看,图像的高斯模糊过程就是图像与正态...原创 2019-11-19 21:25:31 · 919 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图片模糊基本操作
模糊处理模糊处理也称为滤波处理,模糊处理的目的就是为了去除噪声1)平均模糊 :取(归一化)卷积框里的平均值代替中心像素的值,用到的语句为:cv2.blur(img,(5,5))2)高斯模糊 :使用高斯核进行加权模糊,用到的语句为:cv2.GaussianBlur(img,(5,5),0)。3)中值模糊 :使用卷积框中像素的中值(比如使用3x3的卷积框,则将框内的9个元素进行排...原创 2019-11-19 10:31:09 · 237 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】泛洪填充
泛洪填充泛洪填充是很多图形绘制软件中常用的填充算法,最熟悉不过就是windows paint的油漆桶功能。算法的原理很简单,就是从一个点开始附近像素点,填充成新的颜色,直到封闭区域内的所有像素点都被填充新颜色为止。泛洪填充实现最常见有四邻域像素填充法,八邻域像素填充法,基于扫描线的像素填充方法。根据实现又可以分为递归与非递归(基于栈)。原理:从一个点开始遍历附近的像素点,填充...原创 2019-11-19 09:54:39 · 418 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】ROI感兴趣区域的获取与处理
今天来讲一下ROI(感兴趣区域)的获取以及处理,感兴趣区域,就是我们从图像中选择一个区域,这个区域就是图像分析所关注的焦点,那么我们要处理的图像就从大图像变为一个小图像区域了,这样以便进行进一步处理,可以大大减小处理时间。在python中如果要选择感兴趣的区域非常好选择直接利用矩形 图像名称[100:200, 100:200] 取出感兴趣区域 竖向开始 10...原创 2019-11-18 21:27:19 · 2832 阅读 · 1 评论 -
【OpenCV3.3+Python3.6】像素的运算
像素运算1.算术运算加、减、乘、除、均值、方差2逻辑运算与、或、非3.额外补充亮度、对比度的修改来看一下总体的代码import cv2import numpy as npdef add_demo(m1,m2):#加运算 dst=cv2.add(m1,m2) cv2.imshow("add_demo",dst)def subtra...原创 2019-11-18 17:54:30 · 264 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图片的BGR通道的分离、修改以及合并
这里讲一下色彩空间BGR中图片的通道分割,合并等主要看代码吧import cv2def bgr_spilt_merge(image): b,g,r=cv2.split(image)#分离图片的三通道值 cv2.imshow("blue",b)#显示单通道blue的图片 cv2.imshow("green",g)#显示单通道green的图片 cv2.im...原创 2019-11-18 16:54:26 · 916 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图片的HSV色彩空间过滤颜色
HSV过滤图片的操作H(色调):0-180S(饱和度):0-255V(黑暗的程度):0-255下图是HSV的颜色的取值范围,根据范围取值可以过滤掉某种颜色:import cv2import numpy as np#视频的色彩处理def extrace_object_demo(): capture = cv2.VideoCapture("jack...原创 2019-11-18 16:32:07 · 2171 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】图片的色彩空间
OpenCV中有数百种色彩空间转换的方法。比较常用的有三种:灰度图像、BGR以及HSV(Hue,Saturation,Value)。1.灰度图像:灰度色彩空间是通过去除彩色信息来将其转换成灰阶,灰度色彩空间对中间处理特别有效,比如人脸检测。2.BGR:即蓝-绿-红色彩空间,每一个像素点都由一个三元数组来表示,分别代表蓝、绿、红三种颜色。另一个与之相似的颜色空间:RGB,它们只是在颜色...原创 2019-11-18 15:59:14 · 315 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】OpenCV3.3的基本视频操作
前面讲了图片的基本操作,也顺带讲一下图片的基本操作import cv2 as cv#在这里讲一下引入可以更名的用法,比如引入cv2想换名字为cv可以这样写#比较适合一些比较长的库名称去修改为短一点的 import numpy as np这样的一个用法capture=cv.VideoCapture(0)#打开摄像头 while(True):#一直去循环 re...原创 2019-11-17 20:18:52 · 201 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】OpenCV3.3的基本图片操作
接前面安装好了pycharm和opencv库,现在 就来实践一下代码吧1.项目建立,新建py文件打开pycharm之后,在file新建一个project然后在project项目名称右键新建一个python文件,然后在新建的 python文件中写入要写的代码2.图片基本操作代码的学习注意:python代码的注释用的都是 “#” 来注释的import cv2 #引...原创 2019-11-17 19:51:11 · 279 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】OpenCV的安装
OpenCV的安装安装方式一:可以说是最简单的方式了,直接在安装好后的pycharm中安装,具体看图即可理解1.在file->settings->project interpreter中可以看到已经安装好的库函数,如下图所示2.点击“+”号 可以打开新的界面去查找需要的opencv-python库,点击下方的安装即可3.测试 安装成功与否可以在p...原创 2019-11-14 21:25:35 · 283 阅读 · 0 评论 -
【OpenCV3.3+Python3.6】学习笔记总结
因为最近接触到另一个项目, 负责的部分主要是图像算法处理这一块的内容,所以就又开始捣鼓图像算法的东西,对于这个东西,我的学习主要是看 视频写代码来学习,防止知识 遗忘,所以写了博客来做笔记,以来是趁热打铁复习一波, 二来可以提供给后者学习参考用,如有错误,请多多指出。 近几年来做算法,图像处理这块的用的最多的结合就是python与opencv的结合,op...原创 2019-11-14 20:18:20 · 377 阅读 · 0 评论