前提
環境について
macbook pro(M1) monterey
使用言語::C++
バージョン::OpenCV4.6.0
問題
大学の研究で画像を扱うのですが、その時にRGBからHSV色空間へと変えたくてcvtColor関数を使いたいのですがエラーが出てしまいます.
コンパイル自体はできるのですが、プログラムを実行すると下記のようなエラーが出てきます.
code
#include <iostream> #include <string> #include <sstream> #include <iomanip> #include <opencv2/opencv.hpp> #include <opencv2/imgcodecs.hpp> #include <vector> #include <math.h> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> int main(){ cv::Mat gray,binary,img;//画像格納用 cv::Mat hsv,smooth;//HSV色空間格納用 img = cv::imread("../img/sample3.png");//画像データの読み込み gray = cv::imread("../img/sample3.png",0);//画像データの読み込み(グレースケール) if(gray.empty()){//エラー処理 std::cout<<"error"<<std::endl; return 0; } cv::imwrite("../img/gray.png",gray);//グレースケール画像の保存 std::cout<<"閾値を入力して下さい"<<std::endl; int tsd_v = 135; std::cout<<tsd_v<<std::endl; // std::cin>> tsd_v; cv::threshold(gray,binary,tsd_v,255,cv::THRESH_BINARY);//2値化 cv::imwrite("../img/binary.png",binary);//2値化画像の保存 cv::cvtColor(gray,hsv,cv::COLOR_BGR2HSV); cv::Size ksize = cv::Size(3, 3); // ここのパラメータは適宜 cv::GaussianBlur(binary, smooth, ksize, 0); cv::imwrite("../img/smooth.png",smooth); cv::imshow("frame",smooth); cv::waitKey(0); return 0; }
error
libc++abi: terminating with uncaught exception of type cv::Exception: OpenCV(4.6.0-dev) /opt/opencv/modules/imgproc/src/color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function 'cv::impl::(anonymous namespace)::CvtHelper<cv::impl::(anonymous namespace)::Set<3, 4, -1>, cv::impl::(anonymous namespace)::Set<3, -1, -1>, cv::impl::(anonymous namespace)::Set<0, 5, -1>, cv::impl::(anonymous namespace)::NONE>::CvtHelper(cv::InputArray, cv::OutputArray, int) [VScn = cv::impl::(anonymous namespace)::Set<3, 4, -1>, VDcn = cv::impl::(anonymous namespace)::Set<3, -1, -1>, VDepth = cv::impl::(anonymous namespace)::Set<0, 5, -1>, sizePolicy = cv::impl::(anonymous namespace)::NONE]' > Invalid number of channels in input image: > 'VScn::contains(scn)' > where > 'scn' is 1 zsh: abort ./main
注:ライブラリについてよく分かっておらず、参考にしたページに記述されているインクルード文を継ぎ足しているため、不必要なものもあると思いますが
よろしくお願いします.
まだ回答がついていません
会員登録して回答してみよう