前提・実現したいこと
画像内の散らばった輪郭の面積の総和を出したいのですがやり方がよくわからず止まっています
適切なやり方・コードを教えていただけると幸いです
発生している問題・エラーメッセージ
error Traceback (most recent call last) <ipython-input-35-23e0f86dac3f> in <module> 23 img_contour = cv2.drawContours(img, contours, -1, (0, 255, 0),5) 24 ---> 25 area = cv2.contourArea(img_contour) 26 27 #画像出力 error: OpenCV(4.0.1) C:\ci\opencv-suite_1573470242804\work\modules\imgproc\src\shapedescr.cpp:272: error: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::contourArea'
該当のソースコード
python
1#白黒画像に変換 2import cv2 3import numpy as np 4#画像読み込み(日本語は使用不可)(目的の画像に対してshift +右クリック→ソースのコピー) 5img = cv2.imread(r"C:\Users\2104101\Desktop\dog.png") 6 7#ネガポジ反転 8rimg = cv2.bitwise_not(img) 9 10#グレイスケール化 11gray = cv2.cvtColor(rimg, cv2.COLOR_BGR2GRAY) 12 13#2値化 14ret,th = cv2.threshold(gray,145,255,cv2.THRESH_BINARY) 15 16 17 18#輪郭検出 19contours, hierarchy = cv2.findContours(th, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) 20 21#輪郭描画 22img_contour = cv2.drawContours(img, contours, -1, (0, 255, 0),5) 23 24area = cv2.contourArea(img_contour) 25 26#画像出力 27cv2.imwrite('area'+r'C:\Users\2104101\Desktop\a(9).png', img_contour)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
python3系 anaconda opencvを使用
回答3件
あなたの回答
tips
プレビュー