Windows下openCV与Python使用

Install OpenCV&Python on Windows

tag: opencv python


  • [x] win7,win10下调用camera,保存mp4,均测试。
  • [x] 涉及软件都已经放在百度云

1. 安装python

  • python2.7下载地址,点击左边或直接在evernote里下载附件。

  • 为什么是python2.7? 安装版本为python2.7.11,因为openCV对python3的支持还是beta阶段 ,而且你在opencv的build路径中只能找到opencv/build/python/2.7

  • 把python.exe的路径,设置在path环境变量中(一般为C:/python27)

  • 把C:\Python27\Scripts 也设置为环境变量Path(为了用pip 安装)

2. 安装numpy

  • opencv/build/python/2.7里的cv2.pyd,是用numpy1.9.Xbuild的。 所以对numpy版本有要求,必须是numpy1.9. numpy1.9下载地址

3. 安装openCV

4.安装腾讯云微视频SDK

pip install qcloud_video

5.安装pyOSC

  • pyOSC
  • 解压缩文件夹,并在该文件夹目录下

python setup.py install

6. python2.7和openCV结合

  • 把opencv/build/python/2.7文件夹下 cv2.pyd 拷贝到 C:/Python27/lib/site-packages.
  • 此时在cmd 下,输入python ;然后输入 import cv2 ,就会有类似下图的


    975A96E5-D357-4F82-86B7-40AB65C77083.png-48.1kB
    975A96E5-D357-4F82-86B7-40AB65C77083.png-48.1kB
  • 把C:\opencv\build\bin里的opencv_ffmpeg310.dll 拷贝到 C:\Python27中
  • 安装 imutils
  • 步骤:
    目录C:\Python27\Scripts\ 下执行升级pip命令:

python -m pip install —upgrade pip

  • 还在上面的目录下 执行

pip install imutils

  • 安装 openh264下载地址 下载1.4 win32版本openh264-1.4.0-win32msvc.dll,下载后把dll 放进 C:\Python27

  • 安装 requests :pip install requests

  • 安装Pillow :pip install Pillow

  • 安装qrcode :qrcode source,解压目录下,执行python setup.py install

  • 安装ffmpeg :ffmpeg,解压缩到C盘根目录,并把C:\ffmpeg\bin加入到Path,在cmd下输入ffmpeg,会有一些相关提示。

  • 合并mp4:

    ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts

    ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts

    ffmpeg -i "concat:1.ts|2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4

  • 调整分辨率 :

    ffmpeg -i test.mp4 -vf scale=640:-2 test_640.mp4

  • 参考:

processing a source MP4 into a proper MP4 derivatives for Web access:

HandBrakeCLI -i "getting_a_book_orig.mp4" -o "getting_a_book.mp4" -e x264 -q 20 -a 1 -E faac -B 128 -6 dpl2 -R Auto -D 0.0 -f mp4 -X 640 -m -x cabac=0:ref=2:me=umh:bframes=0:weightp=0:subme=6:8x8dct=0:trellis=0 --vb 600 --two-pass --turbo --optimize

here is a command for converting to WebM from the derivative MP4:
MP4 to WebM

ffmpeg -quality good -qmin 10 -qmax 51 -i "getting_a_book.mp4" "getting_a_book.webm"


Sample Code:

import numpy as np
import cv2
import time
import imutils
filename = time.strftime("%m-%d-%H-%M-%S") + '.mp4'

isValid = True
w=800
h=600
videoCapture = cv2.VideoCapture(3)


#fps = videoCapture.get(cv2.cv.CV_CAP_PROP_FPS)
fps = 0;
if(fps ==0):
     fps = 25
size = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))

print(fps)
print(size)
fourcc = cv2.VideoWriter_fourcc(*'X264')
writer = cv2.VideoWriter(filename, fourcc, 20.0,size)
if not videoCapture.isOpened()  :
    print("can't open the camera")
#s_img = cv2.imread("test.png", -1)
#NamedWindow( "test", CV_WINDOW_NORMAL );
cv2.namedWindow("test",cv2.WINDOW_FULLSCREEN)
cv2.setWindowProperty("test", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)

while(True):
    # Capture frame-by-frame
    try :
        retLeft, frameLeft = videoCapture.read()

    except:
        print("error the take a image")
        isValid = False


    if isValid == True:
        #try:
            # Our operations on the frame come here
            #grayLeft = cv2.cvtColor(frameLeft, cv2.COLOR_BGR2GRAY)
            #hsv = cv2.cvtColor(frameLeft, cv2.COLOR_BGR2HSV)
            #grayLeft = cv2.cvtColor(frameLeft, cv2.COLOR_BGR)
            # Display the resulting frame

            # fullScreen set

            #videoWriter.write(frameLeft)
        cv2.imshow('test',frameLeft)
        #    cv2.imshow('Display image',s_img)          ## Show image in the window
        writer.write(frameLeft)

            #cv2.imshow('frameLeft',grayLeft)

        if cv2.waitKey(40) & 0xFF == ord('q'):
                break
        #except:
            #print("Error during the convertion")


# When everything done, release the capture
videoCapture.release()
writer.release()
#out.release()
cv2.destroyAllWindows()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容