我正在使用opencv版本1.0.0
(不幸的是不能使用较新的版本)进行基本的图像操作,例如加法,除法等。
我正在使用的数据结构的定义如下:
CvMat m1 = cvCreateMat(w, h, CV_16U);
CvMat m2 = cvCreateMat(w, h, CV_16U);
CvMat m3 = cvCreateMat(w, h, CV_16U);
并包含16位无符号灰度原始图像。
像加法,减法这样的操作都很好。另一方面,操作cvDiv(m1, m2, m3);
会产生Division by zero
异常。
似乎必须将垫子转换为CV_32F
,但是我找不到找到一种方法来使用opencv来正确地将它们转换。
如果我手动(通过自己的功能)将其转换,则会遇到Violation reading location
异常。
我的问题如下:
如何将CvMat
的{{1}}转换为CV_16U
如何使用CV_32F
函数正确分割两个图像