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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

5291閲覧

opencvをインストールする事で発生する問題とは?

toki99

総合スコア13

OpenCV

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/04/21 10:34

編集2019/04/21 17:46

前提・実現したいこと

プログラミング初心者です。

Python3.7.3において、PyAutoGuiモジュールを用いて作業の自動化プログラムを作っています。
画像を認識してクリックするだけのコードを書き、これ自体は問題なく動いたのですが
発展的なものを作ろうとpipでopencv_pythonをインストールした所、先程まで動いていた
プログラムが動作しなくなりました。

該当のソースコード

import pyautogui as pya

x, y = pya.locateCenterOnScreen(r'D:\自作絵\oC6preset\画像認識用\アクティブ.bmp', grayscale=True)
pya.click(x-20, y)

###エラーメッセージ
Traceback (most recent call last):
File "test22.py", line 3, in <module>
x, y = pya.locateCenterOnScreen(r'D:\自作絵\oC6preset\画像認識用\アクティブ.bmp', grayscale=True)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyscreeze_init_.py", line 318, in locateCenterOnScreen
coords = locateOnScreen(image, **kwargs)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyscreeze_init_.py", line 286, in locateOnScreen
retVal = locate(image, screenshotIm, **kwargs)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyscreeze_init_.py", line 267, in locate
points = tuple(locateAll(needleImage, haystackImage, **kwargs))
File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyscreeze_init_.py", line 132, in _locateAll_opencv
needleImage = load_cv2(needleImage, grayscale)
File "C:\Users\xxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pyscreeze_init
.py", line 101, in _load_cv2
"unsupported or invalid format" % img)
OSError: Failed to read D:\自作絵\oC6preset\画像認識用
\アクティブ.bmp because file is missing, has improper
permissions, or is an unsupported or invalid format

試したこと

opencvを入れた途端にエラーが出るようになり、opencvをアンインストールすると
また正常に動作(任意の場所をクリック)するようになります。
エラーメッセージによるとファイルが見つからないかフォーマットが対応していないと
言っているようですが、opencvを入れる前までは見つけられたファイルが見つからなくなる
のはよくわかりませんし、使用する画像の拡張子を.jpgや.pngに変えても意味が
ありませんでした。

なぜこういった事が発生するのか理解できなかったため、ご教示いただけると幸いです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

https://github.com/asweigart/pyscreeze/blob/3cfd27a1357b12805e7267893fdaff5995cc4528/pyscreeze/init.py#L474

OpenCVがあればそれを使って画像を読み込もうとして、なければpillowを使って読み込もうとするので、OpenCVが使えるように見えて実はインストールに失敗している時や、期待しているOpenCVのインタフェースが変更されている時などで、「OpenCVをインストールしたら失敗する」という現象は当然起きるでしょう。

OpenCVを自分で使ってみて正常に使えるか確認するのが先かと思います。

投稿2019/04/22 07:06

quickquip

総合スコア11029

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

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

toki99

2019/04/22 13:37

どうやっても画像を扱う事ができないので、ご指摘の通りopenCVのインストールが正常でないという線で調べていこうと思います。 ご協力ありがとうございました。
guest

0

openCVをインストールしている状態だと画像の読み込みにおいて(cv2.imread()等のメソッドを使わなくても)日本語を含むパスを受け付けなくなる事から起因する混乱でした。

投稿2019/04/23 06:45

toki99

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問