前提・実現したいこと
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()
エラーは六行目で出てきていて次のように表示されています
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'
始めて間もないので初歩的なミスも見分けられないでいます。詳しく教えていただいたらうれしいです。またほかのコードのミスもありましたら教えていただけたら嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。