gpt4 book ai didi

使用 cvDCT 函数在 opencv 中计算 dct

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:11 25 4
gpt4 key购买 nike

我在 vs2010 中使用 OpenCV 2.1(C 编码)。从 rgb 图像中提取蓝色平面后,我对其应用 dct 以获得变换后的矩阵。

cvDCT(source,destination,CV_DXT_FORWARD);

它正在成功构建,但不知为何它没有执行

错误类似于“freqDomain.exe 中 0x75c89617 处的未处理异常:Microsoft C++ 异常:内存位置 0x001ce35c 处的 cv::Exception ..”

我认为错误在于设置输出图像的 cvarray 类型。可以将它设置为 IPL_DEPTH_8U 还是应该 float ?

这是我的代码片段:

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);

...

最佳答案

是的,找到了解决方案:)问题出在源图像的数据类型上。它应该是 float 或 double ..我使用 cvConvert 函数将 unsigned int 值转换为 32 位浮点值。

关于使用 cvDCT 函数在 opencv 中计算 dct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10850213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com