Opencv使用筆記

2021-09-24 09:19:08 字數 883 閱讀 4169

opencv 2.x, 返回,contours, hierachy; opencv 3.x 返回 image, contours, hierachy, 

contours是個list,每個是乙個shape為(nx2)的輪廓,n為輪廓點個數2為x,y值,

2.warpaffine 使用三個點,如引數點數多與3個,那麼使用前三個點;

matrix = cv2.getaffinetransform(points1,points2) #points1.shape:3x2

output = cv2.warpaffine(img,matrix,(cols,rows))

warpperspective使用4個點

matrix = cv2.getperspectivetransform(points1,points2) # poits1.shape=4x2, 將四個點組成的平面轉換成另四個點組成的乙個平面

output = cv2.warpperspective(img, matrix, (cols, rows))

不管是,warp,還是perspective變換,本質都是取樣,是找目標圖i,j位置對應的原圖位置,沒有對畫素值進行運算。目標圖i,j位置,在原圖的哪個位置:matrix * [i, j, 1]=[u,v,w],那麼目標圖中i,j位置的畫素,就從u/w, v/w的原圖位置,直接取畫素,不進行任何畫素值得變換。

3.warpperspective變換後,如何變回去?

對於目標圖x,y如何變換回去,得到對應原圖中的位置:

m= 問題2中的matrix

w = m30*x + m31*y + m32

u=x*w

v = y*w

所以: 原圖i,j位置, [i,j,1] = inverse(matrix) * [u, v, w]

opencv使用筆記

2015年07月08日 11 18 55 影象的幾何變換主要包括 平移 擴大與縮小 旋轉 仿射 透視等等。影象變換是建立在矩陣運算基礎上的,通過矩陣運算可以很快的找到對應關係。理解變換的原理需要理解變換的構造方法以及矩陣的運算方法,曾經寫過matlab下的簡單影象變換原理,裡面有最基礎的構造原理可以...

OpenCV應用筆記

1 使用cvsmooth函式,src與dst的depth要一致,否則會出現raiseexception錯誤。src和dst的位深不能為64位浮點。簡單模糊和高斯模糊支援 1 或 3 通道,8 位元 和 32 位元 浮點影象。這兩種方法可以 in place 方式處理影象。2 關於直接讀取iplima...

opencv 的 Mat 類使用筆記

環境 windows,visual studio 15,opencv3.4.2,c 建立乙個2 2的矩陣,a矩陣的深度是1,b的深度是2,c的深度是3 建立的矩陣的 truew deepth w 其中cv 8uc1,cv 8uc2,cv 8uc3決定寬高之外的通道數,其中8是每個數字佔8位,u是無符...