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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

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

OpenCV

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

Python

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

PyCharm

エディター・開発ツール

Q&A

解決済

2回答

3868閲覧

python,opencvを用いて複数の重心計算を行いたい

Main_tain

総合スコア1

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

NumPy

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

OpenCV

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

Python

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

PyCharm

エディター・開発ツール

0グッド

0クリップ

投稿2020/10/09 07:03

前提・実現したいこと

python,opencvを用いて複数の図形の輪郭抽出をし、重心を計算しようとしています。
プログラムと対称の写真は以下のようになっています。

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread("test.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(img, 127, 255, 0)
img1 = np.array(thresh)
img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)

contours, _ = cv2.findContours(img2, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
M = cv2.moments(c)
x = int(M["m10"] / M["m00"])
y = int(M["m01"] / M["m00"])
plt.plot(x,y,marker='.')

plt.imshow(img2, cmap = "gray")
plt.colorbar()
plt.show()

背景:黒、 図形:楕円1つ、円2つ

エラーは六行目で出てきていて次のように表示されています

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

始めて間もないので初歩的なミスも見分けられないでいます。詳しく教えていただいたらうれしいです。またほかのコードのミスもありましたら教えていただけたら嬉しいです。

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

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

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

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

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

guest

回答2

0

そこにあるかとはどういう状態のことですか?
詳しくお願いします。
また訂正なのです。六行目とありましたが記載しているものでは五行目のところになります。

投稿2020/10/12 02:28

編集2020/10/12 02:44
Main_tain

総合スコア1

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

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

0

ベストアンサー

画像ファイルが読み込めてません。そこにあるか確認してください。

投稿2020/10/09 07:35

yuki23

総合スコア1448

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

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

Main_tain

2020/10/12 02:35

そこにあるかとはどういうことですか? 詳しくお願いします。
yuki23

2020/10/12 02:40

あなたがプログラムで指定した場所に画像ファイルを配置したか、ということです
Main_tain

2020/10/12 03:27

解決しました。本当にありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問