アニメ画像の輪郭を取る
膨張させて元画像引くと輪郭が取れるやつやりました(この方法の名称わからない)
#include <iostream> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #pragma comment(lib, "opencv_world300d.lib") int main(int argc, char *argy[]){ cv::Mat src_img = cv::imread("画像のパス"); cv::Mat gray; cv::cvtColor(src_img, gray, CV_RGB2GRAY); cv::Mat dilate_img; cv::dilate(gray, dilate_img, cv::Mat(), cv::Point(-1, -1), 1); cv::Mat result = dilate_img - gray; cv::namedWindow("image1"); cv::namedWindow("image2"); cv::imshow("image1", src_img); cv::imshow("image2", result); cv::waitKey(0); cv::imwrite("保存先のパス", result); return 0; }
RGB成分に分解してやったらもっときれいに輪郭取れるかもしれない。