2017-09-09 29 views
0

私は現在、OpencvでLucy Richardsonアルゴリズムを実装しようとしています。私のプログラムで 'cv :: subtract'メソッドを実行すると、 InteropServices例外(スタック以下のトレース)以下Opencv cv :: SubtractメソッドがSystem.Runtime.InteropServices.SEHExceptionをスローする

************** Exception Text ************** 
System.Runtime.InteropServices.SEHException (0x80004005): External has thrown an exception. 
at cv.Mat.=(Mat* , MatExpr* expr) in e:\opencv\opencv\build\include\opencv2\core\mat.inl.hpp:line 3107 
at LucyRichardson.LucyRich(LucyRichardson* , Mat* , basic_string<char\,std::char_traits<char>\,std::allocator<char> >* imagePath) in e:\documents\development\realtimeimageprocessing\imageprocessing\imageprocessing\lucyrichardson.cpp:line 63 

は、それが第二の行にスローされ、エラーが発生したコードのブロックです。

im_correction = cv::Mat (cvSize(383, 357), 8, 1); 
cv::subtract(im, im_conv_kernel, im_correction); 
cv::namedWindow("Sub"); 
cv::imshow("Sub", im_correction); 

変数イムim_conv_kernelは::タイプCVの両方のマットであり、正しく装着されていると私は引き算の結果でを保存する前に、変数im_correction私はのバージョンを作成しようとしました

私はプログラムの他の部分でcv :: subtractionsを使っています。

誰でもこのエラーが発生する理由と解決方法を知っていますか?または、別の方法がある場合、私は減算を試みることができますか?

答えて

0

私は、問題のどこで同じ種類の画像がどこにあるかを確認するために必要なところに取り組みました。 - 減算を行う前に以下の3行を追加した後、正常に動作しました。

im.convertTo(im, CV_8UC1); 
im_conv_kernel.convertTo(im_conv_kernel, CV_8UC1); 
im_correction.convertTo(im_correction, CV_8UC1); 
関連する問題