質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

7829閲覧

Pythonでcv2とosをimportできません。

satosato

総合スコア20

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/16 04:53

編集2020/07/16 05:42

PythonでOpenCVを使おうとしましたが、実行時に次のようなエラーが表示されます。原因がわからないので教えて下さい。

エラーメッセージ

Traceback (most recent call last):
File "camera.py", line 2, in <module>
import cv2, os
ImportError: /usr/lib/arm-linux-gnueabihf/libopencv_legacy.so.2.4: undefined symbol: _ZN2kv14Fernlassifmms4readEVKN?_8FileNodeE

【追記】ソースコードと各種バージョンは以下の通りです。

Python

1from datetime import datetime 2import cv2, os 3 4def main(): 5 6 current_dir = os.path.dirname(os.path.abspath(__file__)) + '/' 7 8 cam = cv2.VideoCapture(0) 9 if cam == None: 10 return False 11 12 while True: 13 _, img = cam.read() 14 15 shoot_time = datetime.now() 16 image_file = current_dir + shoot_time.strftime('%Y%m%d_%H%M%S%f') +'.jpg' 17 18 cv2.imwrite(image_file, img) 19 20 if cv2.waitKey(1) == 13: break 21 22 cam.release() 23 cv2.destroyAllWindows() 24 25if __name__ == '__main__': 26 main() 27

各種バージョン

$ apt search opencv | grep -e libopencv-dev -e python-opencv
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libopencv-dev/oldstable,now 2.4.9.1+dfsg1-2 armhf [インストール済み]
python-opencv/oldstable,now 2.4.9.1+dfsg1-2 armhf [インストール済み]
$ python -V
Python 2.7.13
$ python3 -V
Python 3.5.3
$pip -V
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 20.1.1 from /home/pi/.local/lib/python2.7/site-packages/pip (python 2.7)
$ pip3 -V
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 20.1.1 from /home/pi/.local/lib/python3.5/site-packages/pip (python 3.5)

【追記2】
上記はPython2で実行しました。
上記の開発環境構築の手順は以下の通りです。

開発環境構築手順

$ apt -y install libopencv-dev python-opencv
$ pip install -U pip

また、Python3での実行を試みたところ、以下のエラーが出ました。

エラーメッセージPython3

Traceback (most recent call last):
File "camera.py", line 2, in <module>
import cv2, os
ImportError: No module named 'cv2'

長くなりましたが、何卒よろしくお願いします。

【追記3】

Python

1import cv2 2import os

に変更したところ

エラー

Traceback (most recent call last):
File "camera.py", line 2, in <module>
import cv2
ImportError: No module named 'cv2'

となりました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2020/07/16 05:19

そのコードはPython2,3どちらで実行したのか? OpenCVを使うために行った作業の詳細(環境構築の手順)を記載ください。
branch

2020/07/16 05:30

こんにちは. can110様の内容に加えて,pythonの対話モードで import cv2とimport osを個々に行った際の挙動もお教えいただけませんでしょうか.
guest

回答4

0

自己解決

公式のOpenCV4.3.0がインストールされた別のRaspiで上記のPythonプログラムを動かしたところ、正常に動作しました。非公式のビルド済パッケージの使用を避けたほうが良さそうです。
OpenCV4.3.0は以下のサイトのとおりにインストールしました。皆さん沢山のご回答をありがとうございました。

https://qengineering.eu/install-opencv-4.3-on-raspberry-pi-4.html

投稿2020/07/16 07:00

satosato

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは,早速の補足ありがとうございます.
cv2がインポートできないということはopenCVがインストールされていない,あるいは認識されていないという可能性が高いです.

今回の場合,

$ apt -y install libopencv-dev python-opencv

ということですが,このaptコマンドはLinux本体にはインストールされているもののpythonにそれを認識させる作業が必要となるはずです.

簡単なのはpipコマンドの実行でしょうか.pip installを実行すればpythonのモジュールとしてインストールできるので,特別な操作なしにimport cv2することができるようになるでしょう.以下のコマンドをコマンドラインで実行後,再度camera.pyを実行してみてください.

pip install opencv-python

[補足]
ちなみに,import osは成功していますよ.
私も5年ほど前にラズパイにopencvを載せました.デビアンを入れるのに一週間とかかかりました.
苦労はお察しします.少しずつ前進しているはずなので頑張ってください!

投稿2020/07/16 05:53

編集2020/07/16 05:57
branch

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

satosato

2020/07/16 06:14

回答ありがとうございます。 $ pip install opencv-python WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip. Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue. To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support Defaulting to user installation because normal site-packages is not writeable Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple ERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none) ERROR: No matching distribution found for opencv-python とのことでした。Python2.7であることが関係しているみたいで、実際に貼られたURLも見ましたが、よくわかりませんでした(汗)
branch

2020/07/16 06:38 編集

お世話になっております. pip3 install opencv-pythonではいかがでしょうか.camera.py実行の際はpython3で実行ください. >WARNING: pip is being invoked by an old script wrapper. このエラーには遭遇したことがないので私の理解になりますが,pipの(pip3で実行した場合はpip3の)バージョンが古いことによる警告でしょうか. can110様がおっしゃる通り,python2.7は避けた方がよいです.現段階で使用する予定がなければ(あるいはよくわからないならば)とりあえずは2.7を無効化し3.x系を有効デフォルトにすることで,Web上の多くのソースコードが動かせるようになるでしょう. https://qiita.com/nagase/items/029e8fab5d783bbf2743 この辺りを参考に設定変更してみてください.
guest

0

ラズパイへのOpenCVの導入は情報が多いわりには(だからこそ?)茨の道です。
ポイントはできるだけ最新で一次情報に近いと思われる情報を探すことです。

RaspberryPiへのOpenCVインストール手順■非公式のビルド済パッケージ(opencv-python)をインストールを試してみてはいかがでしょうか。ちなみにこれはPython3系での導入手順となっています。
Python2はサポート切れたので、できるだけ使わないようにしたほうがよいです。

投稿2020/07/16 05:49

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

OpenCVは外部ライブラリなので事前にインストールする必要がありますが、インストールしていますか?
また、osは標準ライブラリなので

python

1import os

とすればインポートできるはずです。

投稿2020/07/16 04:59

編集2020/07/16 05:01
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問