首页 > 代码库 > python计算机视觉
python计算机视觉
机器学习的一个应用方向,是如何让机器去理解图像。包括对图像里物体的识别,跟踪和测量。
能做什么——无人驾驶汽车、人脸识别、车牌识别手势识别(游戏方向)
PIL静态的库
OpenCV 动态的库
import pandas as pdimport numpy as npfrom PIL import Imagetrain=pd.read_csv(‘train.csv‘)for ind,row in train.iloc[1:10].iterrows(): #第一行是label i=row[0] arr=np.array(row[1:],dtype=np.uint8) arr.resize((28,28)) im=Image.fromarray(arr) #ind是第几幅图像,i表示这个图像是几 #如果没有‘train_pics’这个文件夹会报错 im.save(‘./train_pics/%s-%s.png‘ % (ind,i))
opencv视频输入输出——因为环境配置问题,本程序没有运行:
################# 摄像头的输入,输出 ##################def onm ouse(event, x, y, flags, param): # Event: # CV_EVENT_MOUSEMOVE 0 滑动 # CV_EVENT_LBUTTONDOWN 1 左键点击 # CV_EVENT_RBUTTONDOWN 2 右键点击 # CV_EVENT_MBUTTONDOWN 3 中键点击 # CV_EVENT_LBUTTONUP 4 左键放开 # CV_EVENT_RBUTTONUP 5 右键放开 # CV_EVENT_MBUTTONUP 6 中键放开 # CV_EVENT_LBUTTONDBLCLK 7 左键双击 # CV_EVENT_RBUTTONDBLCLK 8 右键双击 # CV_EVENT_MBUTTONDBLCLK 9 中键双击 # x,y为鼠标点击位置 # flags: # CV_EVENT_FLAG_LBUTTON 1 左键拖曳 # CV_EVENT_FLAG_RBUTTON 2 右键拖曳 # CV_EVENT_FLAG_MBUTTON 4 中键拖曳 # CV_EVENT_FLAG_CTRLKEY 8 (8~15)按Ctrl不放事件 # CV_EVENT_FLAG_SHIFTKEY 16 (16~31)按Shift不放事件 # CV_EVENT_FLAG_ALTKEY 32 (32~39)按Alt不放事件 # param: 自定义编号 global clicked if event == cv2.cv.CV_EVENT_LBUTTONUP: clicked = Trueclicked = False#读取摄像头输入cameraCapture = cv2.VideoCapture(0)cv2.namedWindow(‘MyCamera‘)#绑定鼠标callbackcv2.setMouseCallback(‘MyCamera‘, onm ouse)print u‘点击窗口或者按任意键退出.‘success, frame = cameraCapture.read()while cv2.waitKey(1) == -1 and not clicked: if frame is not None: cv2.imshow(‘MyCamera‘, frame) success, frame = cameraCapture.read()cv2.destroyWindow(‘MyCamera‘)
一、Haar级联分类器
Harr级联分类器=Harr-like特征检测+Adaboost
如何把若干个弱分类器变成一个强分类器。
# -*- coding: utf-8 -*-# comment by heibankeimport cv2#实例化分类器#实例化的函数的参数是xml文件,这个文件里边是训练奶好了的强分类器face_cascade = cv2.CascadeClassifier(‘./xml/haarcascade_frontalface.xml‘)eye_cascade = cv2.CascadeClassifier(‘./xml/haarcascade_eye.xml‘)#打开图像img = cv2.imread(‘./pics/test_faces.jpg‘)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#gray = cv2.imread(‘test1.jpg‘, cv2.CV_LOAD_IMAGE_GRAYSCALE)# detectMultiScale参数解释# gray, 用于检测的灰度图像# 1.2: scale_factor 在前后两次相继的扫描中,搜索窗口的比例系数。——就是说搜索的时候不断把窗口按比例放大# 例如1.1指将搜索窗口依次扩大10%。# 2: min_neighbors 构成检测目标的相邻矩形的最小个数(缺省-1)。——只有判断相邻的矩形都有的时候才会判断为人脸,如果稍微缩小一下就不是了,那么它就不会当做人脸# 如果组成检测目标的小矩形的个数和小于min_neighbors-1 都会被排除。# 如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形框。——我们选择2,是选择所有相邻的矩形都是脸的那个矩形 faces = face_cascade.detectMultiScale(gray, 1.2, 2)for (x,y,w,h) in faces: # cv2.rectangle参数解释 #(x,y)是矩形左上角 #(x+w,y+h)是矩形右下角 #(255,0,0)是矩形的RGB颜色, 为红色 #2, 是绘制矩形的线宽 cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) roi_gray = gray[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] #在人脸检测的基础上检测眼睛 eyes = eye_cascade.detectMultiScale(roi_gray) for (ex,ey,ew,eh) in eyes: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)cv2.imshow(‘img‘,img)k=cv2.waitKey(0)if k==27: cv2.destroyWindow(‘test‘)
python计算机视觉
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。