Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为OpenCV编译MATLAB绑定_C++_Matlab_Opencv_Mex - Fatal编程技术网

C++ 为OpenCV编译MATLAB绑定

C++ 为OpenCV编译MATLAB绑定,c++,matlab,opencv,mex,C++,Matlab,Opencv,Mex,我正在尝试编译OpenCV 3.0的MATLAB绑定,即Github的当前版本。我不断发现以下错误: CMake Error at /opencv/modules/matlab/compile.cmake:47 (message): Failed to compile createCalibrateDebevec: /opencv/build/modules/matlab/src/createCalibrateDebevec.cpp: In function ‘void mexFun

我正在尝试编译OpenCV 3.0的MATLAB绑定,即Github的当前版本。我不断发现以下错误:

CMake Error at /opencv/modules/matlab/compile.cmake:47 (message):
  Failed to compile createCalibrateDebevec:
  /opencv/build/modules/matlab/src/createCalibrateDebevec.cpp:
  In function ‘void mexFunction(int, mxArray**, int, const mxArray**)’:

  /opencv/build/modules/matlab/src/createCalibrateDebevec.cpp:46:3:
  error: ‘Ptr_CalibrateDebevec’ was not declared in this scope
多个文件都会发生这种情况。我发现了这个,它讨论了一些补救措施,即。在bridge.hpp文件中添加一些typedef,但这会在编译时导致更多错误。我还发现这建议删除有问题的.cpp文件并编译。这导致了无错误编译,然后是通常的make安装。但是,现在从MATLAB内部调用任何OpenCV函数都会导致以下错误:

If = cv.dft(I, 'flags', cv.DFT_COMPLEX_OUTPUT);
Error using dft
cv::exception caught:
/home/xxx/opencv-master/modules/core/src/dxt.cpp:1760: error: (-215)
type == CV_32FC1 || type == CV_32FC2 || type == CV_64FC1 || type == CV_64FC2
in function dft
另一个错误示例:

im_denoise = cv.fastNlMeansDenoising(im_noise, 18);
Error using fastNlMeansDenoising
cv::exception caught:
/home/xxx/opencv-master/modules/photo/src/fast_nlmeans_denoising_invoker.hpp:146:
error: (-215) almost_dist2weight_[0] == fixed_point_mult_ in function
FastNlMeansDenoisingInvoker

非常感谢您对如何解决这些问题的任何帮助

关于您得到的
'cv::exception Capture'
错误:似乎
cv
希望输入图像为浮点类型(分别为
cv_32FC1'
cv_64FC1'


尝试使用
im2single
im2double
将您的输入图像
I
imu noise
转换为浮点,然后查看这些错误是否再次发生。

您可能想查看有关为最新的OpenCV 3.0开发版本编译matlab mex的信息


它还包含OpenCV matlab和C++

@AruniRC的预编译二进制文件-你开始悬赏是因为“这个问题没有得到足够的重视”-但是你没有提供任何关于你在这里得到的答案和建议的反馈。。。这不是引起注意的正确方式。我能够编译和链接所有内容,没有任何错误。我只是确保编译时使用的每个库/SDK都具有相同的体系结构。例如,如果您的matlab是64位的,那么请确保在CMake中选择了64位编译器,并且找到了64位Python。然而,不知何故,matlab文件并没有附带mex文件。我可以看到生成的所有.cpp文件,但是编译和安装后没有编译的mex。这会引发新的错误。我想我将等待MATLAB绑定与OpenCV的下一个官方版本一起发布。谢谢你的回答。