使用IDCT时出错(OpenCV)

时间:2015-09-30 00:03:48

标签: opencv image-processing dct

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

消息:enter image description here

我的代码:

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;

}

1 个答案:

答案 0 :(得分:1)

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