Каждый раз, когда я запускаю этот код, программа не отвечает, а затем я получаю этот msg, и я не знаю, в чем проблема? так может кто-нибудь мне помочь?Ошибка при использовании 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;
}
Вы уверены, что изображение находится в той же папке, что и ваш исполняемый файл? Программа отлично работает для меня. Он сделал 100 файлов изображений с исходного изображения, на котором я его тестировал. – Jason
Да, это прекрасно читает, проблема в функции idct, когда я комментирую, что она работает нормально, поэтому я не знаю, что именно неправильно с этим! –
'0xC0000005' - нарушение прав доступа. Скомпилируйте и запустите с помощью отладчика, чтобы найти местоположение ошибки. –