結論
opencv4.5.1のインストールは
pip install opencv-python==4.5.1.48
背景
opencv4.7.0をインストールしたらcv2.findContoursの戻り値contoursがタプルになっていたため、sortが出来なくなっていた。面積順にね、ソートしたいの。
Python環境:WinPython_3.7.7.1
(解決策1)タプルをリストに変更
contours, _ = cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
contours = list(contours) #←これを挿入
contours.sort(key=lambda x: cv2.contourArea(x), reverse=True)
でも、昔作成したものもあるし、、、あまり変更したくない、ということで、解決策2へ。
(解決策2)opencv4.5.1をインストールし直す。
以下を参考にしました。
https://qiita.com/TakahiroYamamoto/items/e608c8f501065c252187
ここで問題発生。
python==4.5.1の最後の2桁は何?cv2.__vesion__では4.5.1までしかわからない。どうしたらわかるの?
とりあえずopencv-python==4.5.1を入力してみると、
ERRORで選べるバージョンを教えてくれました。ありがとう。
pip install opencv-python==4.5.1.48
を入力して無事完了。
わからないときのエラーメッセージ頼み、でした。
findContoursの戻り値はversion3では3つです。
追記
普通にWinPython Command Promptで
pip show opencv-python
(または pip list, pip freeze)
でバージョン確認できました。すっきり。
(参考HP)
https://note.nkmk.me/python-package-version/
https://pg-chain.com/python-package-version