Lorsque j'utilise ce code pour faire pivoter l'image, la taille de l'image de destination reste la même et l'image est donc tronquée. Veuillez me fournir un extrait de code/way pour le redimensionner en conséquence (comme le fait Matlab dans imrotate) afin que l'image ne soit pas coupée et que les pixels aberrants soient remplis de tout blanc au lieu de noir. Je ne veux pas que l'image soit réduite pour correspondre à la taille d'origine. Je veux juste la rotation, pas d'échelle.Rotation de l'image Erreur OpenCV
void imrotate(std::string imgPath,std::string angleStr,std::string outPath) {
size_t found1,found2;
found1=imgPath.find_last_of('/');
found2=imgPath.size()-4;
IplImage* src=cvLoadImage(imgPath.c_str(), -1);;
IplImage* dst;
dst = cvCloneImage(src);
int angle = atoi(angleStr.c_str());
CvMat* rot_mat = cvCreateMat(2,3,CV_32FC1);
CvPoint2D32f center = cvPoint2D32f(
src->width/2,
src->height/2
);
double scale = 1;
cv2DRotationMatrix(center, angle, scale, rot_mat);
cvWarpAffine(src, dst, rot_mat);
char angStr[4];
sprintf(angStr,"%d",angle);
cvSaveImage(string(outPath+imgPath.substr(found1+1,found2-found1-1)+"_"+angStr+".jpg").c_str(),dst);
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvReleaseMat(&rot_mat);
}
image originale:
alt text http://freeimagehosting.in/images/185_ElectricalG.jpg
pivotée Image:
alt text http://freeimagehosting.in/images/638_ElectricalG_60.jpg
est-il pas: "... un carré 1,414 ... fois ..." –
a convenablement arrondi valeur de 1,414 ..., oui –