OpenCVインストール時のエラー対策

OpenCVをインストールする時に苦労したのでその過程を備忘録として記録します。

環境

Anaconda(python3.7)

OpenCV4.1.0

まず、opencvをcondaでインストールします。

conda install -c conda-forge opencv

インストールした後にcv2をインポートするとエラーになりました。

import cv2

上のコードを実行すると、

『ImportError: DLL load failed 指定されたモジュールが見つかりません。』

とエラーが出てインポートできません。

解決策は・・・

https://codeday.me/jp/qa/20190301/340876.html

ここに書いてある方法で解決しました。

まず、下のサイトから

https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv

pythonのバージョンとOpenCVのバージョンが 自分の環境に合っている.whlをダウンロードします。

その後、以下のコマンドを実行し.whlをインストールします。 pip install opencv_python-4.1.0-cp37-cp37m-win_amd64.whl (64ビット版)

これで無事OpenCVをインポートすることができました。

二分探索

独学で初めて最近自分のプログラムが遅いという壁に当たり
アルゴリズムを勉強し始めました。

まずは、アルゴリズム入口??の二分探索を実装してみました。

python3.6

#二分探索
def binary_search(arry, item):
    low = 0
    high = len(arry) - 1#リストの長さを測定する
    
    #lowとhighが一致するか、ひっくり返るまで検索
    while low <= high:
        mid = (low + high) // 2#真ん中の要素の位置が整数になるように計算する
        
        if arry[mid] == item:#値が同じなら場所を返して終了
            return(mid)
        
        elif arry[mid] > item:#大きすぎたら半分より前を再度検索
            high = mid - 1
        
        else :#小さすぎたら半分より後を再度検索
            low = mid + 1
    
    return(None)#一致するものがなければNoneを返す

適当なリストを作って試してみます。

#適当なリストの作成
arry = list(range(0, 10,2))
#[0, 2, 4, 6, 8]

#検索するitem
item = 4

#二分探索
print(binary_search(arry, item))
#2

処理時間を測定しました。
10個の要素から検索するのに245ns
1億個の要素から検索するのに3.72µs

要素の個数は1000万倍だけど、処理時間は15倍!!

このアルゴリズムを知ってから
アルゴリズムをもっと知りたい!!勉強したい!!と思いました。