
cv2
MuNian123
这个作者很懒,什么都没留下…
展开
-
画动态时钟
import cv2import mathimport datetimeimport numpy as npmargin = 5 # 上下左右边距radius = 220 # 圆的半径center = (center_x, center_y) = (225, 225) # 圆心# 1. 新建一个画板并填充成白色img = np.zeros((450, 450, 3), ...原创 2019-06-12 15:10:27 · 298 阅读 · 0 评论 -
仿射变换和透视变换原理
import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('drawing.jpg')rows, cols = img.shape[:2]# 1.仿射变换# 变换前的三个点pts1 = np.float32([[50, 65], [150, 65], [210, 210]])# ...原创 2019-06-12 13:42:19 · 1014 阅读 · 0 评论 -
车道检测
import cv2import numpy as npfrom moviepy.editor import VideoFileClip# 高斯滤波核大小blur_ksize = 5# Canny边缘检测高低阈值canny_lth = 50canny_hth = 150# 霍夫变换参数rho = 1theta = np.pi / 180threshold = 15m...转载 2019-06-12 13:41:12 · 255 阅读 · 0 评论 -
Harris角点检测
import cv2import numpy as npimg = cv2.imread('chessboard.png')# 1. Harris角点检测基于灰度图像gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 2. Harris角点检测dst = cv2.cornerHarris(gray, 2, 3, 0.04)# 腐蚀一下,...原创 2019-06-12 13:40:18 · 158 阅读 · 0 评论 -
颜色空间转换
import cv2img = cv2.imread('lena.jpg')# 1.转成灰度图img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cv2.imshow('img', img)cv2.imshow('gray', img_gray)cv2.waitKey(0)# 2.获取所有的转换模式flags = [i for...原创 2019-06-12 13:36:21 · 307 阅读 · 0 评论 -
Shi-Tomasi角点检测
import cv2import numpy as npimg = cv2.imread('chessboard.png')imgShi, imgHarris = np.copy(img), np.copy(img)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 1.Shi-Tomasi角点检测# 优点:# 速度相比Harris有所提...原创 2019-06-11 16:50:17 · 453 阅读 · 0 评论 -
霍夫变换
import cv2import numpy as np# 1. 霍夫直线变换img = cv2.imread('shapes.jpg')drawing = np.zeros(img.shape[:], dtype=np.uint8) # 创建画板gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)edges = cv2.Canny(gray...原创 2019-06-11 16:46:58 · 300 阅读 · 0 评论 -
腐蚀与膨胀
import cv2import numpy as np# 1.腐蚀与膨胀img = cv2.imread('j.bmp', 0)kernel = np.ones((5, 5), np.uint8)erosion = cv2.erode(img, kernel) # 腐蚀dilation = cv2.dilate(img, kernel) # 膨胀cv2.imshow('e...原创 2019-06-11 16:38:35 · 563 阅读 · 0 评论 -
边缘检测
import cv2import numpy as np# 1.Canny边缘检测img = cv2.imread('handwriting.jpg', 0)edges = cv2.Canny(img, 30, 70)cv2.imshow('canny', np.hstack((img, edges)))cv2.waitKey(0)# 2.先阈值,后边缘检测# 阈值分割(...原创 2019-06-11 16:36:41 · 304 阅读 · 0 评论 -
图像混合
import cv2import numpy as np# 1.图片相加x = np.uint8([250])y = np.uint8([10])print(cv2.add(x, y)) # 250+10 = 260 => 255print(x + y) # 250+10 = 260 % 256 = 4# 2.图像混合img1 = cv2.imread('len...原创 2019-06-11 16:34:12 · 288 阅读 · 0 评论 -
绘图功能
import cv2import numpy as np# 创建一副黑色的图片img = np.zeros((512, 512, 3), np.uint8)# 1.画一条线宽为5的蓝色直线,参数2:起点,参数3:终点cv2.line(img, (0, 0), (512, 512), (255, 0, 0), 5)# 2.画一个绿色边框的矩形,参数2:左上角坐标,参数3:右下角坐...原创 2019-06-11 16:32:47 · 223 阅读 · 0 评论 -
图像几何变换
import cv2img = cv2.imread('drawing.jpg')# 1.按照指定的宽度、高度缩放图片res = cv2.resize(img, (132, 150))# 按照比例缩放,如x,y轴均放大一倍res2 = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)cv2.ims...原创 2019-06-11 16:31:56 · 345 阅读 · 0 评论 -
阈值分割
import cv2import matplotlib.pyplot as plt# 灰度图读入img = cv2.imread('gradient.jpg', 0)# 阈值分割,ret:return value缩写,代表当前的阈值,暂时不用理会ret, th = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)cv2.imshow(...原创 2019-06-11 16:28:50 · 261 阅读 · 0 评论 -
图像平滑
#!/usr/bin/env python# -*- coding: utf-8 -*-# File : 图形平滑.py# Author: MuNian# Date : 2019/6/11import cv2import numpy as npimg = cv2.imread('lena.jpg')# 1.均值滤波blur = cv2.blur(img, (3, 3))...原创 2019-06-11 16:26:25 · 231 阅读 · 0 评论 -
opencv-python 摄像头操作
import cv2def track_back(x): ''' ### 回调函数,x表示滑块的位置 ''' # 更改视频的帧位置 capture.set(cv2.CAP_PROP_POS_FRAMES, x)cv2.namedWindow('window')capture = cv2.VideoCapture('demo_video.mp...原创 2019-06-11 16:23:47 · 844 阅读 · 0 评论 -
尺度空间与图像金字塔
import cv2img = cv2.imread('lena.jpg')lower = cv2.pyrDown(img) # 向下采样一级higher = cv2.pyrUp(img) # 向上采样一级cv2.imshow('origin', img)cv2.imshow('lower', lower)cv2.imshow('higher', higher)cv2.w...原创 2019-06-12 13:44:23 · 398 阅读 · 0 评论