python-opencv
仝笛
这个作者很懒,什么都没留下…
展开
-
opencv打开摄像头
import cv2#摄像头编号:0 多摄像头的话记得查看各自的编号cap = cv2.VideoCapture(0)#有的书上说X64的电脑上,这个地方要加:#0xFF != 27#但是可以不加while cv2.waitKey(1) & 0xFF != 27: #frame是一帧的图像 ret, frame = cap.read() cv2.imsho...原创 2019-03-19 20:13:34 · 244 阅读 · 0 评论 -
opencv方框滤波cv2.boxFilter
import cv2img=cv2.imread('1.jpg')# 卷积和尺寸 是否归一化#normalize=True 时等价于 均值滤波cv2.blur#normalize=False 时 卷积结果>255时,置为255blur=cv2.boxFilter(img,-1, (3, 3), normalize=Fals...原创 2019-04-08 20:49:21 · 4123 阅读 · 2 评论 -
opencv膨胀cv2.dilate
import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)dilate = cv2.dilate(img,kernel,iterations = 1)cv2.imshow('dilate',dilate)cv2.waitKey(0)cv2....原创 2019-04-08 21:32:17 · 6063 阅读 · 0 评论 -
opencv开运算
#先腐蚀再膨胀#用来去除噪声import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)cv2.imshow('opening',o...原创 2019-04-08 21:35:14 · 748 阅读 · 0 评论 -
opencv闭运算
#先膨胀再腐蚀#用来填充前景物体中的小洞,或者前景物体上的小黑点import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)close = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)cv2.i...原创 2019-04-08 21:38:22 · 724 阅读 · 0 评论 -
opencv形态学梯度gradient
#膨胀与腐蚀的差#结果看上去就像前景物体的轮廓import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生产卷积核kernel = np.ones((5,5),np.uint8)gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)cv2.imsh...原创 2019-04-08 21:41:23 · 230 阅读 · 0 评论 -
opencv礼帽tophat
#原始图像与进行开运算之后得到的图像的差import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生成卷积核kernel = np.ones((5,5),np.uint8)tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)cv2.imshow('toph...原创 2019-04-08 21:46:19 · 1376 阅读 · 0 评论 -
opencv黑帽blackhat
#闭运算之后得到的图像与原始图像的差import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生成卷积核kernel = np.ones((5,5),np.uint8)blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)cv2.imshow('bl...原创 2019-04-08 21:48:26 · 562 阅读 · 0 评论 -
opencv形态学操作之间的关系
#opencv形态学操作之间的关系转载 2019-04-08 21:51:02 · 100 阅读 · 0 评论 -
opencv 使用numpy构建结构化元素
# OpenCV函数 cv2.getStructuringElement()# For exemple:# Rectangular Kernel>>> cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))array([[1, 1, 1, 1, 1],[1, 1, 1, 1, 1],[1, 1, 1, 1, 1],[1, 1,...转载 2019-04-08 21:54:54 · 280 阅读 · 0 评论 -
opencv图像梯度Sobel,Scharr 和 Laplacian
'''梯度滤波器(高通滤波器):Sobel,Scharr 和 LaplacianSobel,Scharr 其实就是求一阶或二阶导数。Scharr 是对 Sobel(使用小的卷积核求解求解梯度角度时)的优化Laplacian 是求二阶导数。Sobel 算子是高斯平滑与微分操作的结合体,所以它的抗噪声能力很好如果 ksize=-1,会使用 3x3 的 Scharr 滤波器它的的效果...原创 2019-04-08 22:22:05 · 412 阅读 · 0 评论 -
OpenCV边界检测cv2.Canny
import cv2def nothing(x): passcv2.namedWindow('canny')cv2.createTrackbar('maxVal','canny',0,255,nothing)cv2.createTrackbar('minVal','canny',0,255,nothing)img = cv2.imread('1.jpg',0)whil...原创 2019-04-09 21:55:21 · 1411 阅读 · 0 评论 -
opencv高斯滤波cv2.GaussianBlur
import cv2img=cv2.imread('1.jpg')#(5, 5)表示高斯矩阵的长与宽都是5,标准差取0blur=cv2.GaussianBlur(img,(5,5),0)cv2.imshow('GaussianBlur',blur)cv2.waitKey(0)cv2.destroyAllWindows()...原创 2019-04-08 20:55:52 · 47269 阅读 · 0 评论 -
opencv中值滤波cv2.medianBlur
import cv2img=cv2.imread('1.jpg')#常用来去除椒盐噪声#卷积核使用奇数blur=cv2.medianBlur(img,5)cv2.imshow('medianBlur',blur)cv2.waitKey(0)cv2.destroyAllWindows()原创 2019-04-08 20:59:36 · 10313 阅读 · 0 评论 -
opencv 滑动条
import cv2import numpy as npdef nothing(x): pass# 创建一副黑色图像img=np.zeros((300,512,3),np.uint8)#使用滑动条必须先创建一个窗口cv2.namedWindow('image')#创建滑动条,#参数:# 1 滑动条名称# 2 绑定到的窗口名# 3,4滑动条最大、最小值# 5 必须...原创 2019-03-19 20:24:16 · 295 阅读 · 0 评论 -
opencv ROI
import cv2#读取图片img=cv2.imread("1.jpg")#可以把读出来的图像看出矩阵#黑白图像 只有1层;彩色图像是3层cv2.imshow("ROI",img[150:160,150:160])cv2.imshow("ROI1",img)cv2.waitKey(0)cv2.destroyAllWindows()...原创 2019-03-19 21:02:37 · 127 阅读 · 0 评论 -
opencv缩放
import cv2img=cv2.imread('1.jpg')#缩放时推荐使用 cv2.INTER_AREA,#在扩展时推荐使用 v2.INTER_CUBIC(慢) 和 v2.INTER_LINEAR#此处相对于 宽扩大2倍 高扩大2倍kuo=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)#等价于#h...原创 2019-03-19 21:28:33 · 780 阅读 · 0 评论 -
opencv旋转图片
import cv2img=cv2.imread('1.jpg',0)rows,cols=img.shape#首先获取一个旋转矩阵# 第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子# 可以通过设置旋转中心,缩放因子,以及窗口大小来防止旋转后超出边界的问题M=cv2.getRotationMatrix2D((cols/2,rows/2),45,0.6)#使用旋转...原创 2019-03-19 21:42:56 · 171 阅读 · 0 评论 -
使用opencv读取,显示图片
opencv 读取和显示图片@TOC使用opencv读取,显示图片#导入 opencvimport cv2#读取图片#参数列表:# 1、读取的图片地址# 2、读取的模式:默认rgb模式(彩色图像),即数字1;数字0,黑白图像img=cv2.imread('1.jpg')#读取黑白图像#img=cv2.imread('1.jpg',0)#在名为test的窗口中显示图片#参...原创 2019-03-17 21:52:33 · 1622 阅读 · 0 评论 -
opencv创建窗口
#创建窗口import cv2img=cv2.imread('1.jpg',1)#第一个参数是窗口名称#第二个参数是窗口模式#0,初始化时自适应图片,但可改变大小#1=cv2.WINDOW_NORMAL,窗口大小自适应图片,但用户不可改变#2,初始化会缩小图片,但可改变大小cv2.namedWindow('image', cv2.WINDOW_NORMAL)cv2.imsh...原创 2019-03-17 22:08:25 · 6181 阅读 · 0 评论 -
opencv仿射变换
import cv2import numpy as npimg=cv2.imread('1.jpg')rows,cols,ch=img.shape#需要一个变换矩阵#从原图中三个点 映射到输出图像中的三个点pts1=np.float32([[50,50],[200,50],[50,200]])pts2=np.float32([[10,100],[200,50],[100,25...原创 2019-03-21 19:53:35 · 269 阅读 · 0 评论 -
opencv透视变换
import cv2import numpy as npimg=cv2.imread('1.jpg')rows,cols,ch=img.shape#需要一个变换矩阵#从原图中四个点 映射到输出图像中的四个点pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])pts2 = np.float32([[0,0],[300,...原创 2019-03-21 19:57:10 · 131 阅读 · 0 评论 -
opencv简单阈值
import cv2img=cv2.imread('1.jpg',0)def nothing(x): pass#预先创建窗口cv2.namedWindow('THRESH_BINARY')cv2.namedWindow('THRESH_BINARY_INV')cv2.namedWindow('THRESH_TRUNC')cv2.namedWindow('THRESH_T...原创 2019-03-22 20:00:41 · 185 阅读 · 0 评论 -
opencv腐蚀cv2.erode
import cv2import numpy as npimg = cv2.imread('1.jpg',0)#用numpy生成卷积核kernel = np.ones((5,5),np.uint8)erosion = cv2.erode(img,kernel,iterations = 1)cv2.imshow('erosion',erosion)cv2.waitKey(0)cv...原创 2019-04-08 21:11:48 · 3897 阅读 · 4 评论 -
opencv双边滤波cv2.bilateralFilter
#能在保持边界清晰的情况下有效的去除噪音#但是这种操作与其他滤波器相比会比较慢import cv2img=cv2.imread('1.jpg')#cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace)#9 邻域直径,两个 75 分别是空间高斯函数标准差,灰度值相似性高斯函数标准差blur = cv2.bilateralFilter(...原创 2019-04-08 21:04:54 · 14363 阅读 · 4 评论 -
opencv高斯金字塔pyrUp、pyrDown
#高斯金字塔import cv2img = cv2.imread('1.jpg')#cv2.pyrUp() 从一个低分辨率小尺寸的图像向下构建一个金子塔(尺寸变大,但分辨率不会增加pyrUp= cv2.pyrUp(img)#cv2.pyrDown() 从一个高分辨率大尺寸的图像向上构建一个金子塔(尺寸变小,分辨率降低)pyrDown= cv2.pyrDown(img)#一旦使用 ...原创 2019-04-09 22:32:08 · 567 阅读 · 1 评论