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

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

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

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

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

Python

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

Q&A

解決済

1回答

281閲覧

エラーの解決方法: 変数に何も格納されていない。

zuzu1984

総合スコア31

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

OpenCV

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

Python

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

0グッド

0クリップ

投稿2019/03/06 12:27

以下のコードを書いているのですが、エラーが出てしまいます。
(import部分に余計なものが多いと思いますがご容赦いただければ幸いです。)

エラー内容

python

1Traceback (most recent call last): 2 File "C:\python\main00.py", line 28, in <module> 3 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 4cv2.error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:181: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

[img]に指定した画像が格納されていないことでエラーが発生していると思っているのですが、どうすれば[img]に格納されるでしょうか。

試したこと

python

1 img = cv2.imread(testfld + '11111-1_no0.jpg', 0)

実際のコード

python

1# -*^cording: utf-8 -*- 2 3import cv2 4import pyocr 5import pyocr.builders 6import numpy as np 7from matplotlib import pyplot as plt 8from PIL import Image, ImageFilter 9import time 10 11import glob 12import os 13import sys 14import win32com.client 15from datetime import datetime 16 17 18#=============================================================================== 19testfld = 'C:\python\test\Cap' 20 21#=============================================================================== 22 23#------------------------------------------------------------------------------- 24if __name__ == '__main__': 25 26 # 画像を切り出す(画像を2値化し、輪郭抽出し、グレー四角の範囲を切り出す) 27 img = cv2.imread(testfld + '11111-1_no0.jpg') # 任意の画像を切り出すためのひな型として使用するため 28 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 29 ret, binary = cv2.threshold(gray, 130, 255, cv2.THRESHOLD_BINARY) 30 image, contours, hierarchy = cv2.findContours( 31 binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) 32 cv2.imwrite('./test/Cap/gray.png', binary) 33 cnt = max(contours, key=lambda x: cv2.contoursArea(x)) 34 x, y, width, height = cv2.boundingRect(cnt) 35 roi = img[y:y + height, x:x + width] 36 cv2.imshow('./test/Cap/gray_2.png') 37

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

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

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

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

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

guest

回答1

0

ベストアンサー

testfld = 'C:\python\test\Cap' testfld + '11111-1_no0.jpg'

としたら、'C:\python\test\Cap11111-1_no0.jpg' という文字列になるので、セパレータが抜けており、うまく結合できていませんね。

1つ前の 質問 に書きましたが、こうしたミスをなくすために os.path.join() でパスの結合をしてください。

さらに \ 自体を表す場合は、エスケープするか、raw 文字列を使ってください。

# 正しいやり方 # windows のパスは r'パス' と raw 文字列でかく。 # パスの結合は os.path.join を使う img_path = os.path.join(r'C:\python\test\Cap', '11111-1_no0.jpg')

投稿2019/03/06 12:32

tiitoi

総合スコア21956

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

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

zuzu1984

2019/03/06 12:52

セパレータでしたか。 一応デバック再生してみていたのですが、澪としていたみたいです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問