AndroidでQCARを使用しており、QCARImageをcvMatに変換してcvtColorで色を変更しようとしています。
cvtColor で以下のエラーが出ましたが、このエラーの意味を知りたいです。(dcn == 3 || dcn == 4)、scn == 2、および深さ == CV_8U の意味は何ですか?
09-23 14:12:54.944: E/cv::error()(23942): OpenCV エラー: アサーションに失敗しました ((dcn == 3 || dcn == 4) && scn == 2 && 深さ == CV_8U) void cv::cvtColor(cv::InputArray, cv::OutputArray, int, int)、ファイル /home/reports/ci/slave_desktop/50-SDK/opencv/modules/imgproc/src/color.cpp、3389 行目09-23 14:12:54.944: A/libc(23942): 0xdeadbaad (コード = 1) で致命的なシグナル 11 (SIGSEGV)、スレッド 23963 (スレッド 884)
これが私のコードです
QCAR::State state = QCAR::Renderer::getInstance().begin();
// Explicitly render the Video Background
QCAR::Renderer::getInstance().drawVideoBackground();
//get the captured frame of camera
QCAR::Image *img = NULL;
QCAR::Frame frame = state.getFrame();
//getting qcar::image data from QCAR
for (int i = 0; i < frame.getNumImages(); ++i) {
const QCAR::Image *QCARimage = frame.getImage(i);
LOGD("format %d", QCARimage->getFormat());
if (QCARimage->getFormat() == QCAR::RGB565) {
img = (QCAR::Image*) QCARimage;
break;
}
}
if(img){
//converting to mat
Mat capture = Mat(img->getHeight(), img->getWidth(), CV_8UC3, (unsigned char *)img->getPixels());
cvtColor(capture, capture, CV_BGR5652BGR, 0);
}
下手な英語でごめんなさい。