私はOpenCVを学ぼうとしていますが、次の簡単な式を適用したいと思います。
これはピクセルごとの操作であり、ピクセルをrからsに変換します。
これは私のコードです:
int main(int /*argc*/, char** /*argv*/) {
Mat _img = imread("lena.jpg");
cvtColor(_img, img, CV_32F);
cout << "original image size: " << img.rows << " " << img.cols << endl;
cout << "original type: " << img.type() << endl;
cout << "original depth: " << img.depth() << endl;
Mat _src = img.clone();
_src += 1;
log(_src, logContrast);
logContrast *= log_c;
/// ...
そして、私はこのエラーを受け取ります:
OpenCV Error: Assertion failed (depth == CV_32F || depth == CV_64F) in log, file /home/user/Documents/Code/OpenCV-2.3.1/modules/core/src/mathfuncs.cpp, line 1772
terminate called after throwing an instance of 'cv::Exception'
what(): /home/alberto/Documents/Code/OpenCV-2.3.1/modules/core/src/mathfuncs.cpp:1772: error: (-215) depth == CV_32F || depth == CV_64F in function log
グレーとカラーの画像で、そして、、、で試してみましcvtColor
たCV_8U
がCV_32F
、C1
深さとしてC3
常に0を計算します。
私はOpenCVのマニュアルとOpenCV-2.3.1/modules / core / include / opencv2 / core / types_c.hに何時間も費やしましたが、解決策が見つかりません。オブジェクトの深さをどのように変換するかについて、少し混乱したと思いMat
ます。