【发布时间】:2012-06-06 16:34:54
【问题描述】:
我正在使用 OpenCV 2.1 和 vs2010(C 编码)。从 rgb 图像中提取蓝色平面后,我对其应用 dct 以获得变换后的矩阵。
cvDCT(source,destination,CV_DXT_FORWARD);
它正在成功构建,但不知何故它没有执行
错误类似于“freqDomain.exe 中 0x75c89617 处的未处理异常:Microsoft C++ 异常:cv::Exception at memory location 0x001ce35c..”
我认为错误在于设置输出图像的 cvarray 类型。可以设置为 IPL_DEPTH_8U 还是浮动?
这是我的代码 sn-p:
int main()
{
IplImage *input,*output,*b,*g,*r;
input=cvLoadImage("dolphin.jpg");
int width,height;
width=input->width;
height=input->height;
b=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
g=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
r=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
cvSplit(input,b,g,r,NULL);
cvNamedWindow("blue",CV_WINDOW_AUTOSIZE);
IplImage *b_dct,*g_dct,*r_dct;
b_dct=cvCreateImage(cvSize(width,height),8,1);
g_dct=cvCreateImage(cvSize(width,height),8,1);
r_dct=cvCreateImage(cvSize(width,height),8,1);
cvDCT(b,b_dct,0); // doubt??
cvShowImage("blue",b_dct);
...
【问题讨论】:
标签: c opencv watermark steganography