1
我使用OpenCV 2.1與vs2010(C編碼)。從rgb圖像中提取藍色平面後,我將dct應用於它以獲得變換後的矩陣。使用cvDCT函數在opencv中計算dct
cvDCT(source,destination,CV_DXT_FORWARD);
它成功建立,但不知何故,沒有執行
錯誤就像是0x75c89617在freqDomain.exe「未處理的異常:微軟C++異常:異常CV ::內存位置0x001ce35c .. 「
我認爲錯誤在設置輸出圖像的cvarray類型。可以將它設置爲IPL_DEPTH_8U還是浮動?
這是我的代碼片段:
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);
...