python图片处理
柳暗花明又一村ヾ(◍°∇°◍)ノ゙
这个作者很懒,什么都没留下…
展开
-
python opencv流光
import cv2import numpy as npcapture = cv2.VideoCapture('car.mp4')feature_params = dict( maxCorners = 100, qualityLevel = 0.3, minDistance = 7, blockSize = 7 )# lucas kanade光流参数lk_params = dict( winSize = (15,15), maxLevel = 2,原创 2021-02-28 10:16:42 · 213 阅读 · 1 评论 -
python opencv视频中对象跟踪
使用meanShift、CamShift捕捉对象import cv2import numpy as npcapture = cv2.VideoCapture('dance1.mp4')ret,frame = capture.read()x,y,w,h = 700,0,160,160track_window = (x,y,w,h )roi = frame[y:y+h, x:x+w]hsv_roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)mask = cv原创 2021-02-27 18:21:37 · 171 阅读 · 0 评论 -
python opencv视频提取前景
主要是两种提取方式1。KNN效果个人感觉要好一些2.、’MOG以KNN为例import cv2import matplotlib.pyplot as pltimport numpy as npbacksub = cv2.createBackgroundSubtractorKNN()# backsub = cv2.createBackgroundSubtractorMOG2()capture = cv2.VideoCapture('dance.mp4')while True: r原创 2021-02-27 15:43:11 · 281 阅读 · 0 评论 -
python opencv特征匹配
使用ORB描述符进行Brute-Force匹配import cv2import matplotlib.pyplot as pltimport numpy as npimg= cv2.imread('te1.png')img1 = cv2.imread('te2.png')orb = cv2.ORB_create()#找到特征点kp1,des1 = orb.detectAndCompute(img,None)kp2,des2 = orb.detectAndCompute(img1, No原创 2021-02-26 20:50:51 · 306 阅读 · 0 评论 -
python opencv模块匹配
单目标匹配import cv2import matplotlib.pyplot as pltimport numpy as npimg =cv2.imread('number1.jpg')template = cv2.imread('22.png')w,h = template.shape[:2]res = cv2.matchTemplate(img,template,cv2.TM_CCOEFF_NORMED)min_val, max_val, min_loc, max_loc = cv2.原创 2021-02-23 23:00:18 · 157 阅读 · 0 评论 -
python opencv直方图均衡
对于一些较亮的照片或者是比较灰暗的照片,这些照片的像素值局限于某个特定范围import cv2import numpy as npimg = cv2.imread('equal.png',0)equ = cv2.equalizeHist(img)res = np.hstack((img,equ))cv2.imshow('image',res)cv2.waitKey(0)cv2.destroyAllWindows()...原创 2021-02-22 22:42:41 · 85 阅读 · 0 评论 -
python opencv绘制直方图
灰度直方图概括了图像的灰度级信息,简单的来说就是每个灰度级图像中的像素个数以及占有率import cv2import matplotlib.pyplot as pltimport numpy as npimg = cv2.imread('hand.jpg',1)ori = img.copy()color = ['b','g','r']plt.subplot(221)img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)plt.imshow(img),plt.t原创 2021-02-21 23:15:09 · 81 阅读 · 0 评论 -
python opencv图片轮廓
查找轮廓r = cv2.drawContours(o, contours, contoursIdx, color[, thickness])参数 :o : 原始图像contours : 需要绘制的边缘数组contoursIdx : 需要绘制的边缘索引,如果全部绘制则为 -1.color : 绘制的颜色,为BGR格式的Scalarthickness : 可选,绘制的密度,即绘制轮廓时所用的画笔粗细import cv2import matplotlib.pyplot as pltimport原创 2021-02-20 23:27:20 · 152 阅读 · 0 评论 -
python opencv图像边缘检测
图像边缘检测是在图像梯度的前提下,检测提取图片内部轮廓主要函数从v.Canny(src,minval,maxval,picture_size)src 图片minval梯度小于 minVal 的那些边缘必定是非边缘maxvalt梯度大于maxval的那些边缘必定是确定边缘picture_size图片大小(x,y)import cv2import matplotlib.pyplot as pltimg = cv2.imread('logo.jpg',0)img1 = cv2.imread('原创 2021-02-19 20:12:13 · 161 阅读 · 0 评论 -
python opencv图像梯度
图像梯度感觉是用来提取出图像内部的轮廓:import cv2import matplotlib.pyplot as pltimg = cv2.imread('logo.jpg',0)sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5)sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5)laplacian =cv2.Laplacian(img,cv2.CV_64F)title = ['original','sobe原创 2021-02-19 19:48:09 · 144 阅读 · 0 评论 -
python opencv形态学变换
图像侵蚀用于消除小的白色噪声import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('number.jpg')kernel = np.ones((5,5),np.uint8)erosion = cv2.erode(img,kernel,iterations= 1)plt.subplot(121),plt.imshow(img),plt.title('original'),plt.xti原创 2021-02-18 23:15:05 · 161 阅读 · 2 评论 -
python opencv图像模糊
运动模糊import cv2import numpy as npfrom matplotlib import pyplot as pltdef motion_blur(image, degree=50, angle=45): image = np.array(image) # 这里生成任意角度的运动模糊kernel的矩阵, degree越大,模糊程度越高 M = cv2.getRotationMatrix2D((degree / 2, degree / 2), angle,原创 2021-02-18 22:42:31 · 274 阅读 · 0 评论 -
python opencv图像阀值
opencv阀值应用场景主要用于从黑白相片中提取出黑色目标或者是白色目标。全局阀值:阀值类型全局阀值的函数为cv2.threshold (src, thresh, maxval, type)import cv2from matplotlib import pyplot as pltimg = cv2.imread('sunshine.jpg',0)ret,res1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY)ret,res2 = cv2.原创 2021-02-18 19:46:22 · 148 阅读 · 1 评论 -
python opencv图像几何变换
图片缩放:import cv2img = cv2.imread('LightHouse.jpg')height, width = img.shape[:2]res = cv2.resize(img, (int(0.5*width),int(0.5*height)),interpolation= cv2.INTER_CUBIC)cv2.imshow('image', res)cv2.waitKey(0)cv2.destroyAllWindows()图像平移import numpy as原创 2021-02-17 23:06:44 · 193 阅读 · 1 评论 -
python opencv颜色追踪
RGB是为了让机器更好的显示图像,对于人类来说并不直观,HSV更为贴近我们的认知,所以通常我们在针对某种颜色做提取时会转换到HSV颜色空间里面来处理.在opencv中的颜色阀值如下图所示:以追踪摄像有种的蓝色为例:import cv2import numpy as npflags = [i for i in dir(cv2) if i.startswith('COLOR_')]print(flags)cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)whi原创 2021-02-17 19:42:10 · 487 阅读 · 2 评论 -
python opencv轨迹栏
def nothing(x): print(x)img = np.zeros((300,500,3),np.uint8)cv2.namedWindow('image')cv2.createTrackbar('Red','image',0,255,nothing)cv2.createTrackbar('Green','image',0,255,nothing)cv2.createTrackbar('Blue','image',0,255,nothing)while 1: cv2.i原创 2021-02-16 22:59:13 · 91 阅读 · 0 评论 -
python opencv使用回调函数
1,使用回调函数绘制标准的圆:鼠标左键按下画圆import cv2import numpy as npevents = [i for i in dir(cv2) if "EVENT" in i]print(events)img = np.zeros((720,640,3), np.uint8)def draw_circle(event,x,y,flags,param): if event == cv2.EVENT_LBUTTONDOWN: cv2.circle(img原创 2021-02-16 17:13:27 · 322 阅读 · 1 评论 -
使用python opencv绘图
import numpy as npimport cv2img = np.zeros((720,640,3), np.uint8)cv2.line(img,(1,1),(360,560),(255,0,0),2)#绘制线段cv2.rectangle(img, (5,5),(240,180),(0,255,0),2)#绘制矩形cv2.circle(img,(300,300),100,(0,0,255),-1)#绘制圆需要其中心坐标和半径cv2.ellipse(img,(280,500),(原创 2021-02-16 16:05:15 · 174 阅读 · 0 评论 -
python opencv打开摄像头并保存为视频
import cv2cap =cv2.VideoCapture(0,cv2.CAP_DSHOW)#调整分辨率设置为320*240cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)while True: ret, frame = cap.read() if not ret: print("Can't receive frame (stream end?). Exi原创 2021-02-16 13:00:48 · 1066 阅读 · 2 评论 -
使用matplotlib显示cv2的彩色图片
通常情况下matplot无法显示opencv打开的彩色图片,因为cv2的通是BGR,需要分割后重组import cv2desert_img = cv2.imread(r'Desert.jpg',1)b,g,r = cv2.split(desert_img)img = cv2.merge((r,g,b))plt.imshow(img,)plt.xticks([]), plt.yticks([])plt.show()...原创 2021-02-14 19:20:48 · 270 阅读 · 0 评论 -
python opencv使用方法基础
安装:pip install numpy opencv-python读取图片imread(filename,flag) 读取图片,返回图片对象 img_path: 图片的路径,即使路径错误也不会报错,但打印返回的图片对象为None flag:cv2.IMREAD_COLOR,读取彩色图片,图片透明性会被忽略,为默认参数,也可以传入1 cv2.IMREAD_GRAYSCALE,按灰度模式读取图像,也可以传入0 cv2.IMREAD_UNCHANG原创 2021-02-14 18:38:28 · 225 阅读 · 2 评论