前提・実現したいこと
OPENCV初心者です。
OPENCV3を使っています。
現在、2値化した画像の白と黒の面積を表示するプログラムを作成しています。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
#include <iostream> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int main(int argc, char* argv[]) { cv::Mat color_img = imread("sample.png"); cv::Mat gray_img; cv::Mat bin_img; //読み取った画像をグレースケールにする cvtColor(color_img, gray_img, CV_BGR2GRAY); //グレースケールにした画像を2値化する threshold(gray_img, bin_img, 100, 255, THRESH_BINARY); // 白色領域の面積(ピクセル数)を計算する int White = countNonZero(bin_img); //計算結果を表示する printf("White=%d\n", White); imshow("2値化画像", bin_img); waitKey(0); return 0; }
試したこと
ネットや本で調べたところ白はcountNonZeroを使用することで簡単に求めることができることが分かり、実際に求めることができたのですが、黒の面積を求める方法は見つかりませんでした・・・。
どなたか黒の面積を求める方法を教えてくれませんか。
また、画像全体の面積を求めることができればそこから白の面積を引くことで黒の面積が求められるとのアドバイスを貰いました。
しかし、その画像全体の面積を求める方法がわかりません。その方法も教えてくださると幸いです。
よろしくおねがいします。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー