使用 IDCT (OpenCV) 时出错

Error using IDCT (OpenCV)

每次我 运行 这段代码程序都没有响应,然后我收到这条消息,我不知道是什么问题? 所以有人可以帮助我吗?

留言:

我的代码:

int main(){
Mat image,DctImage;
image=imread("2.jpg");
cvtColor(image,image,CV_BGR2GRAY);
image.convertTo(image,CV_32FC1);
Mat freq;
dct(image,freq);

imwrite("DctImage.jpg",freq);

int Start;int col=0;int rows=0;
stringstream ss;

for(Start=100;Start>0;Start=Start-1){
    for(int x=Start;x<freq.rows;x++){
        for(int y=Start;y<freq.cols;y++){
            freq.at<double>(x,y)=0.0;
        }
    }
Mat dst(freq.size(),freq.type());
idct(freq,dst);
ss<<Start<<".jpg";
cout<<ss.str()<<endl;
imwrite(ss.str(),dst);
ss.str("");
cout<<ss.str()<<endl;

}

尝试将 freq.at<double>(x,y)=0.0; 更改为 freq.at<float>(x,y)=0.0; 因为你喂 image.convertTo(image,CV_32FC1);并且应该期望相同的元素类型。