
openCV编程基础
Tian Fangzheng
这个作者很懒,什么都没留下…
展开
-
openCV编程基础1--图像加载与保存
主要功能;1.读入图片,输出图片2.打开摄像头,读取视频流3.查看图片的参数import cv2 as cvimport numpy as np#打开摄像头,读取视频流def video_demo(): capture = cv.VideoCapture(0) while(True): ret,frame=capture.read() ...原创 2019-07-10 19:50:50 · 235 阅读 · 0 评论 -
openCV编程基础15--图像金字塔
功能:实现图像尺度变化import cv2 as cvimport numpy as np#图像金字塔# reduce = 高斯模糊 + 降采样# expand = 扩大 + 卷积# 通过高斯金字塔可以构建拉普拉斯金字塔#高斯金字塔def pyramid_demo(image): level = 3 temp = image.copy() py...原创 2019-09-04 14:55:44 · 319 阅读 · 0 评论 -
openCV编程基础16--图像梯度
功能:1.一阶梯度与Soble算子2.二阶梯度与拉普拉斯算子3.图像通过卷积锐化图像import cv2 as cvimport numpy as np#图像梯度:索贝尔算子def sobel_image(image): grad_x = cv.Sobel(image, cv.CV_32F, 1, 0)#x方向导数 grad_y = cv.Sobel(i...原创 2019-09-04 16:25:14 · 292 阅读 · 0 评论 -
openCV编程基础17--Canny边缘提取
功能:实现图像边缘提取import cv2 as cvimport numpy as npdef edge_image(image): blurred = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) xgrad = cv.Sobel(gray...原创 2019-09-04 16:43:40 · 247 阅读 · 0 评论 -
openCV编程基础18--直线检测
功能:实现图片中的直线检测import cv2 as cvimport numpy as np#霍夫直线检测def line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) edges = cv.Canny(gray, 50, 150, apertureSize=3) lin...原创 2019-09-05 15:40:55 · 411 阅读 · 0 评论 -
openCV编程基础19--圆检测
功能:实现圆的检测import cv2 as cvimport numpy as np# 圆检测def detect_circles_demo(image): dst = cv.pyrMeanShiftFiltering(image, 10, 100) cimage = cv.cvtColor(dst, cv.COLOR_BGR2GRAY) circles...原创 2019-09-05 16:11:12 · 305 阅读 · 4 评论 -
openCV编程基础20--轮廓发现
功能:检测轮廓,填充轮廓import cv2 as cvimport numpy as np#轮廓发现def contous_image(image): dst = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(dst, cv.COLOR_BGR2GRAY) ret, binary = cv.t...原创 2019-09-05 16:34:37 · 174 阅读 · 0 评论 -
openCV编程基础21--对象测量
主要功能:1.找目标的轮廓2.计算轮廓的面积3.计算轮廓外接矩形并把绘制出来4.计算长宽比5.计算轮廓的几何矩6.找轮廓的中心位置并绘制出来7.多边形拟合import cv2 as cvimport numpy as np# 对象测量# 计算每个轮廓的弧长和面积 单位是像素# 多边形拟合def measure_object(image): g...原创 2019-09-06 16:05:41 · 489 阅读 · 0 评论 -
openCV编程基础22--腐蚀与膨胀
主要功能:对彩色/灰度/二值图像进行腐蚀与膨胀运算腐蚀的作用对象大小减少一个像素(3*3)平滑对象边缘弱化或者分割图像之间的半岛型连接膨胀的作用对象大小增加一个像素(3*3)平滑对象边缘减少或者填充对象之间的距离import cv2 as cvimport numpy as np# 腐蚀def erode_demo(image): print(i...原创 2019-09-08 13:13:57 · 264 阅读 · 0 评论 -
openCV编程基础23--开操作闭操作
开操作(Open)闭操作(Close)图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的。主要是应用在二值图像分析中,灰度图像亦可。开操作=腐蚀+膨胀,输入图像+结构元素闭操作=膨胀+腐蚀,输入图像+结构元素开闭操作作用去除小的干扰块-开操作填充闭合区域-闭操作水平或者垂直线提取import cv2 as cvimport numpy as np# 图像的开闭操...原创 2019-09-08 20:41:38 · 529 阅读 · 0 评论 -
openCV编程基础24--其他形态学操作
其它形态学操作顶帽:原图像与开操作之间的差值图像黑帽:闭操作图像与源图像的差值图像形态学梯度:基本梯度>基本梯度是用膨胀后的图像减去腐蚀后的图像得到差值图像,称为梯度图像也是opencv中支持的计算形态学梯度的方法,而此方法得到梯度有被称为基本梯度。内部梯度>是用原图像减去腐蚀之后的图像得到差值图像,称为图像的内部梯度外部梯度>图像膨胀之后再减去原来的图像得到的差值图像...原创 2019-09-09 15:24:46 · 235 阅读 · 0 评论 -
openCV编程基础25--分水岭分割算法
基于距离的分水岭分割流程输入图像>灰度>二值>距离变换>寻找种子>生成Marker>分水岭变换>输出图像import cv2 as cvimport numpy as np# 分水岭算法def watershed_image(): print(src.shape) blurred = cv.pyrMeanShiftFilt...原创 2019-09-09 16:06:01 · 358 阅读 · 0 评论 -
openCV编程基础26--人脸检测
人脸检测需要使用人脸检测分类器,由于opencv的安装是用pip安装的,所以缺少人脸检测分类器,可在以下链接下载。https://github.com/opencv/opencv下载完成后解压,将文件夹,随便放在一个地方,记住haarcascade_frontalface_alt_tree.xml的地址检测图相中的人脸import cv2 as cvimport numpy...原创 2019-09-09 19:06:34 · 254 阅读 · 0 评论 -
openCV编程基础14--超大图像二值化
功能:对超大图进行二值化import cv2 as cvimport numpy as np#超大图像二值化,采用分割加局部阈值的方法#由于图像比较大cv.imshow显示不全,我们把图保存,用图像查看器来看def big_image_binary(image): print(image.shape) cw = 256 ch = 256 h, ...原创 2019-09-03 16:03:27 · 249 阅读 · 0 评论 -
openCV编程基础13--图像二值化
功能:不同方法实现图像二值化import cv2 as cvimport numpy as np#全局阈值OSTU方法def threshold_demo(image): gary = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gary, 0, 255, cv.THRESH_...原创 2019-09-03 15:21:25 · 385 阅读 · 0 评论 -
openCV编程基础2--numpy数组操作
主要功能;1.读取图片中的每个像素,对每个像素做反转处理2.numpy数组的简单用法import cv2 as cvimport numpy as np#计算每一个像素,并对每一个像素反转def accesss_pixels(image): print(image.shape) height = image.shape[0] width = image...原创 2019-07-10 20:45:50 · 513 阅读 · 0 评论 -
openCV编程基础5--ROI与泛洪填充
主要功能:1.选图片的感兴趣区域(ROI),对感兴趣区域进行处理2.泛洪填充-彩色图像进行(连通填充)3.泛洪填充--二值填充import cv2 as cvimport numpy as np#选图片的感兴趣区域(ROI),对感兴趣区域进行处理def roi_demo(image): face = image[35:290,45:260] #把脸部...原创 2019-07-18 10:52:51 · 220 阅读 · 0 评论 -
openCV编程基础6--模糊操作
主要功能:1.均值模糊//均值模糊可以去随机噪声2.中值模糊//中值模糊可以去椒盐噪声3.自定义模糊//此处用的是锐化的卷积核import cv2 as cvimport numpy as np#均值模糊//均值模糊可以去随机噪声def blur_demo(image): dst = cv.blur(image,(1,15)) #用1*15的模板去模糊图像,...原创 2019-07-18 11:25:56 · 212 阅读 · 0 评论 -
openCV编程基础3--色彩空间
主要功能;1.提取视频或图片中的固定颜色,需查看HSV色彩空间转换表2.图像色彩空间转换,RGB转灰度,HSV等3.图像通道分离与合并import cv2 as cvimport numpy as np#提取视频或者图片中的固定颜色 色彩数值图见下图def extrace_object_demo(): # capture = cv.VideoCapture(...原创 2019-07-17 17:09:04 · 233 阅读 · 0 评论 -
openCV编程基础--环境配置
Win10+Anaconda3+OpenCV3+PycharmAnaconda3安装成功后,在Anaconda的命令窗口输入以下命令pip install opencv-pythonpip install opencv-contrib-pythonpip install pytesseract结果:代码已打包上传https://github.com/TianFangzhe...原创 2019-07-17 19:34:09 · 222 阅读 · 0 评论 -
openCV编程基础4--像素运算
主要功能:1.实现两张图片像素的加减乘除2.实现两张图片的逻辑运算--与或非3.调整图像对比度与亮度4.计算图像的均值与方差import cv2 as cvimport numpy as np#两张图片相加(两张图片的大小要一致)def add_demo(m1,m2): des = cv.add(m1,m2) cv.imshow('add',des)...原创 2019-07-17 19:44:57 · 220 阅读 · 0 评论 -
openCV编程基础7--高斯模糊
主要功能:1.随机模糊图像,在图像上添加随机噪声2.高斯模糊,通常用它来减少图像噪声以及降低细节层次import cv2 as cvimport numpy as np#保证所有的像素值在0到255之间def clamp(pv): if pv > 255: return 255 if pv < 0: return ...原创 2019-07-26 10:32:16 · 559 阅读 · 0 评论 -
openCV编程基础8--边缘保留滤波(EPF)
主要功能:1.高斯双边模糊,图像差异大的位置不进行模糊处理,可以有效的保留边缘信息2.均值迁移模糊,图像差异大的位置不进行模糊处理,可以有效的保留边缘信息import cv2 as cvimport numpy as np#高斯双边模糊,图像差异大的位置不进行模糊处理,可以有效的保留边缘信息def bi_demo(image): dst = cv.bilateral...原创 2019-07-26 11:14:57 · 215 阅读 · 0 评论 -
openCV编程基础9--绘制图像直方图(histogram)
主要功能:1.绘制单通道图像直方图2.绘制三通道图像直方图import cv2 as cvimport numpy as npfrom matplotlib import pyplot as plt# 绘制图像单通道的直方图def polt_demo(image): plt.hist(image.ravel(), 256, [0, 256]) plt.sh...原创 2019-07-31 15:46:39 · 378 阅读 · 0 评论 -
openCV编程基础10--直方图应用
主要功能:1.直方图均衡化(调整图像对比度)/(对灰度图而言的)/全局/局部的直方图均衡化,是图像对比度增强的一个手段2.直方图比较,计算两张图片直方图的相关性,可以用于判断两张图片是否是很相似的import cv2 as cvimport numpy as np# 全局的直方图均衡化(对灰度图而言的),是图像对比度增强的一个手段def equalHist_demo(ima...原创 2019-08-27 12:55:33 · 348 阅读 · 0 评论 -
openCV编程基础11--直方图反向投影
功能:1.可以寻找与直方图一致的区域,类似于模板import cv2 as cvimport numpy as npfrom matplotlib import pyplot as plt#直方图反向投影(可以寻找与直方图一致的区域,类似于模板)def back_projection_demo(): sample = cv.imread('F:003.png') ...原创 2019-08-28 15:43:21 · 230 阅读 · 0 评论 -
openCV编程基础12--模板匹配
功能:利用三种不同的度量方式,寻找匹配import cv2 as cvimport numpy as npdef template_demo(): tpl = cv.imread('F:004.jpg') target = cv.imread('F:001.jpg') cv.imshow('template image',tpl) cv.imsho...原创 2019-09-01 11:37:57 · 311 阅读 · 0 评论 -
openCV编程基础27--数字验证码识别
OpenCV+Tesserct-OCROpenCV预处理Tesserct-OCR验证码识别import cv2 as cvimport numpy as npfrom PIL import Imageimport pytesseract as tessdef recognize_text(): gray = cv.cvtColor(src, cv.COLOR_BGR2...原创 2019-09-09 20:02:50 · 359 阅读 · 0 评论