我正在尝试制作一个非常简单的程序,使用Opencv反转像素位置。但是,似乎代码doez由于某种原因没有计算,我注意到很多丢失的PDB文件&我做了一点研究,但我找不到任何可以帮助我解决问题的方法 我正在使用VS 2010和Opencv 2.2
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
using namespace std ;
int _tmain(int argc, _TCHAR* argv[]){
IplImage *image = cvLoadImage("mra.jpg");
if (!image) {
cout<<"Error: Couldn't open the image file.\n"<<endl ;
return 1;
}
IplImage *new_image = cvCreateImage(cvGetSize(image) , image->depth , 1 );
CvScalar pix ;
int position = 0 ;
for(int i = 0 ; i < image->height ; i++ ){
for (int j = 0 ; j < image->width ; j++ ){
pix = cvGet2D(image , i , j ) ;
if ( i = 0 ){
position = image->height - 1 ;
}else if ((position >= 2)) {
position = position - 2 ;
}
cvSet2D(new_image , position , j , pix );
}
}
cvNamedWindow("1111", CV_WINDOW_AUTOSIZE);
cvNamedWindow("2222", CV_WINDOW_AUTOSIZE);
cvShowImage("1111", image);
cvShowImage("2222", new_image);
// Wait for the user to press a key in the GUI window.
cvWaitKey(0);
// Free the resources.
cvDestroyAllWindows ;
cvReleaseImage(&image);
cvReleaseImage(&new_image);
return 0;
}
提前致谢
答案 0 :(得分:1)
if(i = 0)
将0分配给i。它应该是(i == 0)。 你是否有机会获得无限循环?