自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 Python修改文件后缀名

import os# 列出当前目录下所有的文件files = os.listdir('.') # 如果path为None,则使用path = '.' for filename in files: portion = os.path.splitext(filename) # 分离文件名与扩展名 # 如果后缀是jpg if portion[1] == '.jpg'...

2019-06-15 11:48:22 14070 2

转载 蔡徐坤教你用OpenCV实现素描效果

跟着知乎的文章做的,但最后的视频保存部分没有运行成功,试了好久都没成功,有知道错误的麻烦指点一下,谢谢!蔡徐坤教你用OpenCV实现素描效果 - Maker毕的文章 - 知乎 import cv2 as cv# 打开视频capture = cv.VideoCapture("D:/opencv/cxk.flv")# 保存视频fourcc = cv.VideoWriter_fourcc(...

2019-05-29 21:47:19 6008 1

原创 python+opencv3.3视频教学笔记 28 分水岭算法

分水岭分割流程:图像->灰度->二值->距离变换->寻找种子->生成Marker->分水岭变换->输出参考:python OpenCV学习笔记(二十九):图像流域(分水岭)分割算法import cv2 as cvimport numpy as npdef watershed_demo(): print(src.shape) ...

2019-05-16 11:05:53 231

原创 python+opencv3.3视频教学笔记 27 顶帽、黑帽、形态学梯度

import cv2 as cvimport numpy as npdef tophat_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) kerne...

2019-05-15 20:56:12 198

原创 python+opencv3.3视频教学笔记 26开闭操作

import cv2 as cvimport numpy as np# 先腐蚀后膨胀叫开运算(因为先腐蚀会分开物体,这样容易记住),其作用是:分离物体,消除小区域。def open_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255...

2019-05-15 11:37:28 131

原创 python+opencv3.3视频教学笔记 25 膨胀与腐蚀

膨胀与腐蚀能实现多种多样的功能,主要如下:1.消除噪声2.分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素。3.寻找图像中的明显的极大值区域或极小值区域4.求出图像的梯度在进行腐蚀和膨胀的讲解之前,首先需要注意: 腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。 膨胀就是图像中的高亮部分进行膨胀,“邻域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图...

2019-05-14 15:16:30 222

原创 python+opencv3.3视频教学笔记 24 对象测量

import cv2 as cvimport numpy as npdef measure_object(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) #...

2019-05-14 10:00:48 113

原创 python+opencv3.3视频教学笔记 23 轮廓发现

轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值选定会影响最终轮廓发现结果。import cv2 as cvimport numpy as npdef edge_demo(image): blur = cv.GaussianBlur(image, (5, 5), 0) gray = cv.cvtColor(blur, cv.COLOR_BGR2GRA...

2019-05-13 11:21:56 252

原创 python+opencv3.3视频教学笔记 22 Hough 霍夫圆变换

霍夫圆变换的基本原理和霍夫线变换原理类似,只是点对应的二维极径、极角空间被三维的圆心和半径空间取代。在标准霍夫圆变换中,原图像的边缘图像的任意点对应的经过这个点的所有可能圆在三维空间用圆心和半径这三个参数来表示,其对应一条三维空间的曲线。对于多个边缘点,点越多,这些点对应的三维空间曲线交于一点的数量越多,那么他们经过的共同圆上的点就越多,类似的我们也就可以用同样的阈值的方法来判断一个圆是否被检测到...

2019-05-13 09:53:15 248

原创 python+opencv3.3视频教学笔记 21 Hough 霍夫线变换

霍夫变换(Hough Transform) 是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状(如,直线,圆等)。最基本的霍夫变换是从黑白图像中检测直线(线段)。Hough变换的原理是将特定图形上的点变换到一组参数空间上,根据参数空间点的累计结果找到一个极大值对应的解,那么这个解就对应着要寻找的几何形状的参数(比如说直线...

2019-05-11 21:46:11 238 1

原创 python+opencv3.3视频教学笔记 20 Canny边缘提取

Canny 的目标是找到一个最优的边缘检测算法,最优边缘检测的含义是:好的检测- 算法能够尽可能多地标识出图像中的实际边缘。好的定位- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。最小响应- 图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。算法步骤:  ①高斯模糊 - GaussianBlur ,以平滑图像,滤除噪声  ②灰度转换 - cvtColor  ...

2019-05-10 20:33:27 546

原创 python+opencv3.3视频教学笔记 19 图像梯度

图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。Sobel算子是普通一阶差分,是基于寻找梯度强度。拉普拉斯算子(二阶差分)是基于过零点检测。通过计算梯度,设置阀值,得到边缘图像import cv2 as cvimport numpy as npdef sobel_demo(image): # sobel算子 grad_x = cv.Sobel(...

2019-05-09 16:03:25 164

原创 python+opencv3.3视频教学笔记 18 图像金字塔

简介:图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说,图像金字塔就是用来进行图像缩放的。进行图像缩放可以用图像金字塔,也可以使用resize函数进行缩放,后者效果更好。这里只是对图像金字塔做一些简单了解。两种类型的金字塔:①高斯金字塔:用于下采样。高斯金字塔是最基本的图像塔。原理:首先将原图像作为最底层图像G0(高斯金字塔...

2019-05-08 21:41:30 199 1

原创 python+opencv3.3视频教学笔记 17 超大图像二值化

对于分辨率比较大的图片,可以先将其分块后再对其进行二值化import cv2 as cvimport numpy as npdef huge_image(image): h, w = image.shape[:2] cw = 128 ch = 128 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) for ...

2019-05-08 16:56:04 250

原创 python+opencv3.3视频教学笔记 16 图像二值化

import cv2 as cvimport numpy as npdef threshold_demo(image): # 全局阈值 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU...

2019-05-08 14:35:10 511

原创 python+opencv3.3视频教学笔记 15 模板匹配

模板匹配是通过模板在采集到的原图像进行滑动寻找与模板图像相似的目标。模板匹配不是基于直方图的方式,而是基于图像的灰度匹配。其基本原理是逐像素的把一个以一定大小的实时图像窗口的灰度矩阵与参考图像的所有可能的串口灰度阵列,按照某种相似度量方法进行搜索比较的匹配方法,从理论上说就是采用图像相关技术。为了利用模板匹配从源图像中得到匹配区域,从源图像选取该区域作为进行匹配的模板。模板从源图像左上角开始每次...

2019-05-07 17:03:39 637

原创 13-14 直方图应用&直方图反向投影

import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef equalHist_demo(image): # #opencv的直方图均衡化要基于单通道灰度图像 gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # 利用cv.imread('image...

2019-05-05 21:49:49 181

原创 RGB值简介

RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。红、绿、蓝三个颜色通道每种色各分为256阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为0时,是最暗的黑色调;三色灰度都为255时,是最亮的白色调...

2019-05-05 17:46:15 2005

原创 12 图像直方图

import cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltdef plot_demo(image): # 绘图都可以调用matplotlib.pyplot库来进行,其中的hist函数可以直接绘制直方图 plt.hist(image.ravel(), 256, [0, 255]) # ravel函...

2019-05-05 17:43:38 145

原创 11 边缘保留滤波(EPF)

import cv2 as cvimport numpy as npdef bi_demo(image): # 双边滤波 dst = cv.bilateralFilter(image, 0, 100, 15) cv.imshow("bi_demo", dst)def shift_demo(image): # 均值迁移滤波 dst = cv.pyrMeanS...

2019-04-30 21:29:49 1520

原创 10 高斯模糊

import cv2 as cvimport numpy as npdef clamp(pv): if pv > 255: return 255 elif pv < 0: return 0 else : return pvdef gaussian_noise(image): # 对图像加上高斯噪声...

2019-04-30 21:19:18 240

原创 09模糊操作(均值模糊、中值模糊、自定义模糊)

import cv2 as cvimport numpy as npdef blur_demo(image): dst = cv.blur(image, (5, 5))#均值模糊 cv.imshow("blur_demo", dst)def median_demo(image):#中值模糊 dst = cv.medianBlur(image, 5) c...

2019-04-29 21:28:30 1079

原创 08 泛洪填充 Opencv泛洪填充floodFill详细讲解

算法的原理很简单,就是从一个点开始,将附近满足像素要求的点全部填充成指定的颜色,直到封闭区域内的所有像素点都被填充新颜色为止。我们以这张图片为例代码如下import cv2 as cvimport numpy as npdef fill_color_demo(image): copyimg = image.copy() h, w = image.shape[:2]...

2019-04-28 10:17:42 979

原创 08 ROI感兴趣区域 GRAY2BGR无法还原图像色彩

import cv2 as cvimport numpy as npprint("--------- Hello Python ---------")src = cv.imread("D:/opencv/red.jpeg")print(src.shape)cv.namedWindow("red", cv.WINDOW_AUTOSIZE)cv.imshow("red", src)...

2019-04-27 17:31:52 617

原创 B站python+opencv3.3视频教学笔记 06-07像素运算

import cv2 as cvimport numpy as npdef add_demo(m1, m2): dst = cv.add(m1, m2) cv.imshow("add_demo", dst)def subtract_demo(m1, m2): dst = cv.subtract(m1, m2) cv.imshow("subtract_d...

2019-04-26 21:23:34 231

原创 B站python+opencv3.3视频教学笔记 04-05色彩空间

def color_space_demo(image): gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY) cv.imshow("gray", gray) hsv = cv.cvtColor(image, cv.COLOR_BGR2HSV) cv.imshow("hsv", hsv) yuv = cv.cvtColor...

2019-04-26 08:49:03 153

原创 B站python+opencv3.3视频教学笔记 03Numpy数组操作

import cv2 as cvimport numpy as npdef access_pixels(image): print(image.shape) height = image.shape[0] width = image.shape[1] channels = image.shape[2] print("height : %s, widt...

2019-04-25 19:44:04 220

原创 B站python+opencv3.3视频教学笔记 02图像加载与保存

‘’'pythonimport cv2 as cvimport numpy as npdef video_demo(): capture = cv.VideoCapture(0) while(True): ret, frame = capture.read() frame = cv.flip(frame, 1) cv.ims...

2019-04-25 11:33:39 218

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除