OpenCV学习笔记
有一种黑暗来自光
纵有疾风起,人生不言弃。
展开
-
OpenCV(十五):如何用OpenCV-python3实现滑动条更新图像的Canny边缘检测
import cv2from matplotlib import pyplot as pltimport numpy as npimg= cv2.imread('39.jpg')#加载图片cv2.namedWindow('Canny edge detect')#设置窗口,cv2.WINDOW_NORMAL表示窗口大小可自动调节cv2.namedWindow('Original Im...原创 2019-12-09 12:25:47 · 282 阅读 · 0 评论 -
OpenCV(十四):如何用OpenCV-python3实现Sobel算子
参考OpenCV官方文档Sober算子:高斯平滑与微积分操作的结合体,它的抗噪声能力很好。Scharr滤波器卷积核的x方向和y方向正好是行列互换的。拉普拉斯算子可以使用二阶导数的形式定义,设其离散实现类似于二 阶 Sobel 导数。import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2....原创 2019-12-07 16:51:21 · 712 阅读 · 0 评论 -
OpenCV(十三):如何用OpenCV- python3实现形态学转化
参考OpenCV官网文档.关于腐蚀、膨胀,参考 数学形态学运算——腐蚀、膨胀、开运算、闭运算 以及 图像的腐蚀与膨胀。import cv2import numpy as npfrom matplotlib import pyplot as plt无论腐蚀还是膨胀,都是把结构元素B像卷积操作那样,在图像上平移,结构元素B中的原点就相当于卷积核的核中心,结果也是存储在核中心对应位置的元素...原创 2019-12-06 17:27:57 · 131 阅读 · 0 评论 -
OpenCV(十二):用OpenCV-python3实现自适应阈值
参考OpenCV中文文档。import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('39.jpg',0) #转灰度# 中值滤波img = cv2.medianBlur(img,5)#二值阈值化ret,th1 = cv2.threshold(img,127,255,cv...原创 2019-12-04 23:07:50 · 459 阅读 · 0 评论 -
OpenCV(十一):如何用OpenCV-python3实现图像的仿射、透视变换
对于仿射变换,首先需要了解到3点(不共线)可以确定一个平面。因此创建这个矩阵我们需要找到三个点以及他们在输出图像中的位置。cv2.getAffineTransform(input,output)的作用是由输出点和输入点来确定两者的关系矩阵。import cv2import numpy as npfrom matplotlib import pyplot as pltimg = c...原创 2019-12-03 23:06:06 · 689 阅读 · 0 评论 -
OpenCV(十):用OpenCV-python3实现图像平移
图像平移需要用到仿射函数 cv2.warpAffine(). 平移可以理解成图像在一个矩阵的作用下位置发生了变动。矩阵如下图所示。需要注意的是这里的数据类型是np.float(32)。import cv2import numpy as npimg = cv2.imread('35.jpg')tx = 30 #沿x方向平移的距离ty = 30 #沿y方向平移的距离#平移矩...原创 2019-12-03 13:18:25 · 515 阅读 · 1 评论 -
OpenCV(九):如何用OpenCV-python3 实现红绿蓝三色视频物体追踪
import cv2import numpy as np#首先打印出红、绿、蓝三色的HSV值,来确定三色的阈值。red = np.uint8([[[255, 0, 0]]])hsv_red = cv2.cvtColor(red, cv2.COLOR_BGR2HSV)print (hsv_red)#[[[120 255 255]]]green = np.uint8([[[0, 2...原创 2019-12-03 11:04:06 · 1883 阅读 · 0 评论 -
OpenCV(八):如何用OpenCV -python3实现单色视频物体追踪
import numpy as npimport cv2cap =cv2.VideoCapture(0)while(1): #获取每一帧 ret,frame = cap.read() #RGB转换到HSV hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) #设定蓝色的阈值。确定要追踪的颜色为蓝色。 ...原创 2019-12-02 17:09:57 · 926 阅读 · 0 评论 -
OpenCV(七):用OpenCV完成 一个幻灯片演示一幅图如何转成另一幅图
最近在学习 OpenCV官方文档,在Python3的环境下。import numpy as npimport cv2def nothing(x): pass#创建一个黑色的底色板img = np.zeros((500,500),np.uint8)cv2.namedWindow('image')#创建滑动条 (滑动条名称、图像名称、初始值、最大值、回调函数(这里设为空))...原创 2019-12-02 10:31:15 · 652 阅读 · 0 评论 -
OpenCV(六):用OpenCV实现图像扩边
import cv2import numpy as npfrom matplotlib import pyplot as plt#为图像扩边。就像相框一样。# 使用cv2.copyMakeBorder() 函数color= [255,192,183]img = cv2.imread('35.jpg')#img: 图像名称# 10 : top(顶)边界的像素数目# 10 :...原创 2019-12-01 13:16:50 · 931 阅读 · 0 评论 -
OpenCV(五):如何用OpenCV实现图像基础操作
import cv2import numpy as npimg = cv2.imread('35.jpg')获取像素值px = img[100,100] #通过图像的行、列坐标print(px) #返回的是这一点的颜色值。#[59 57 17]blue = img[100,100,1] # OpenCV采用的是BGR, 0 代表蓝色、1 代表绿色、 2 代表红色。...原创 2019-12-01 13:06:28 · 183 阅读 · 0 评论 -
OpenCV(四):如何用OpenCV自定义一个画板
需结合本栏前两篇博客 如何用OpenCV创建颜色滑动条和 如何用OpenCV处理鼠标事件import cv2import numpy as npdef nothing(x): pass#当鼠标按下时变为Truedrawing = False#如果 mode 为 true 绘制矩形。按下'm'变成绘制曲线。mode = Trueix,iy = -1,-1#创建回调函数...原创 2019-11-30 20:10:54 · 579 阅读 · 0 评论 -
OpenCV(三):如何用OpenCV创建颜色滑动条
import cv2import numpy as npdef nothing(x): pass#创建一幅黑色图像img = np.zeros((400,512,3),np.uint8)cv2.namedWindow('image')#'R'为滑动条的名字,'image'为滑动条被放置窗口的名字,0:滑动条的默认位置,255:滑动条的最大位置,nothing是回调函数c...原创 2019-11-30 18:25:25 · 713 阅读 · 1 评论 -
OpenCV(一):如何用OpenCV捕获视频
import numpy as npimport cv2#创建VideoCapture对象用来获取视频 cap = cv2.VideoCapture(0) #参数可以是索引号:0表示内置摄像头;1表示其他的摄像头;也可以是视频文件,表示读取视频文件。 if False == cap.isOpened(): # cap.isOpene...原创 2019-11-30 12:45:11 · 576 阅读 · 0 评论 -
OpenCV(二):如何用OpenCV处理鼠标事件
import cv2import numpy as np回调函数部分#当鼠标按下时变为Truedrawing = False#如果 mode 为 true 绘制矩形。按下'm'变成绘制曲线。mode = Trueix,iy = -1,-1#创建回调函数def draw_circle(event,x,y,flags,param): global ix,iy,drawin...原创 2019-11-30 17:34:26 · 293 阅读 · 0 评论