Re: [問題] OpenCV 做透視轉換
void fun3()// 透視轉換
{
//透視變換
IplImage* Img_old;
IplImage* Img_new;
Img_old = cvLoadImage("lena.bmp",1); //載入圖像
int fix = 50;
int w = Img_old->width + fix;
int h = Img_old->height + fix;
CvPoint2D32f src_point[4];
CvPoint2D32f dst_point[4];
//設定源觀察面,即指定四邊形的四個頂點
src_point[0].x=100;
src_point[0].y=340;
src_point[1].x=420;
src_point[1].y=340;
src_point[2].x=100;
src_point[2].y=100;
src_point[3].x=420;
src_point[3].y=100;
//設定目標觀察面,即指定四邊形的四個頂點
dst_point[0].x=-fix;
dst_point[0].y=h;
dst_point[1].x=w;
dst_point[1].y=h;
dst_point[2].x=-fix;
dst_point[2].y=-fix;
dst_point[3].x=w;
dst_point[3].y=-fix;
float newm[9];
CvMat newM = cvMat( 3, 3, CV_32F, newm );
//獲得透視轉換矩陣
cvWarpPerspectiveQMatrix(src_point,dst_point,&newM);
//透視轉換
cvWarpPerspective(Img_old,Img_new,&newM,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,
cvScalarAll(0) );
cvNamedWindow("image",1); //創建窗口
cvShowImage("image",Img_new); //顯示圖像
cvWaitKey();//等待按鍵
cvDestroyWindow("OpenCV win");//銷毀窗口
cvReleaseImage(&Img_new);//釋放圖像
return;
}
跑出來是沒有error,卻多了一堆warning
warning C4244: '=' : conversion from 'int' to 'float', possible loss of data
warning C4700: uninitialized local variable 'Img_new' used
基本上是這兩種錯誤
有人可以幫指點一下嗎?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.36.60
推
06/14 19:35, , 1F
06/14 19:35, 1F
→
06/14 19:57, , 2F
06/14 19:57, 2F
→
06/14 19:59, , 3F
06/14 19:59, 3F
推
06/14 20:08, , 4F
06/14 20:08, 4F
→
06/14 20:09, , 5F
06/14 20:09, 5F
→
06/14 20:10, , 6F
06/14 20:10, 6F
→
06/14 20:10, , 7F
06/14 20:10, 7F
→
06/14 21:30, , 8F
06/14 21:30, 8F
→
06/14 21:31, , 9F
06/14 21:31, 9F
Img_new = cvCreateImage( cvSize(320,240), Img_old->depth, Img_old->nChannels);
※ 編輯: SiriusJinn 來自: 140.120.90.174 (06/14 21:33)
推
06/14 21:38, , 10F
06/14 21:38, 10F
→
06/14 21:41, , 11F
06/14 21:41, 11F
→
06/14 21:43, , 12F
06/14 21:43, 12F
→
06/14 22:25, , 13F
06/14 22:25, 13F
→
06/14 23:40, , 14F
06/14 23:40, 14F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):