0
IAM交易與多尺度圖像,3種尺寸調整矩形:原始的,半&雙 我提取它們中的每所連接的組件分開然後執行一些計算使用cvTransform和cvGetAffineTransform的OpenCV
最後我要映射的邊界原始圖像
在這裏連接部件到原來的位置和大小的一半&雙刻度的矩形是我的調整和重新定位邊框
Matrix<int> src = new Matrix<int>(3, 2,3);
Matrix<int> dst = new Matrix<int>(3, 2,2);
IntPtr mat = CvInvoke.cvCreateMat(2, 3, MAT_DEPTH.CV_32F);
src[0,0]=componentBRect.X;
src[0,1]=componentBRect.Y ;
src[1,0]=componentBRect.Right;
src[1,1]=componentBRect.Y;
src[2,0]=componentBRect.X;
src[2,1]=componentBRect.Bottom;
CvInvoke.cvGetAffineTransform(img2, img, mat); //img is the original image & img2 has been resized to 1/2 imgWidth and 1/2 imgHeight
CvInvoke.cvTransform(src.Ptr, dst.Ptr, mat, IntPtr.Zero);
的代碼
它應該獲得DST點reszied和搬遷 但遺憾的是相同的點再次返回,我認爲它返回一個單位矩陣
mat=
|1 0 0 |
|0 1 0 | !!
任何建議有一個與getAffineTransform一個問題?或有另一種方式做我想做什麼不使用仿射變換
在此先感謝