使用 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);并且应该期望相同的元素类型。
每次我 运行 这段代码程序都没有响应,然后我收到这条消息,我不知道是什么问题? 所以有人可以帮助我吗?
留言:
我的代码:
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);并且应该期望相同的元素类型。