質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

解決済

Opencv4.6.0でcvtColorが使えない

saiki1127
saiki1127

総合スコア2

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1回答

0評価

0クリップ

261閲覧

投稿2022/06/26 00:28

前提

環境について
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

注:ライブラリについてよく分かっておらず、参考にしたページに記述されているインクルード文を継ぎ足しているため、不必要なものもあると思いますが

よろしくお願いします.

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。