mat類內部實現
設為a,b為mat型別,s是scalar型別,a是乙個實數。下面列出關於mat的常用運算:
1.矩陣加減: a+b,a-b,a+s,a-s,s+a,s-a,-a.
2.矩陣乘以實數: a*a,a*a
3.逐元素乘除: a.mul(b),a/b,a/a
4.矩陣倒置: a.t()
5.矩陣的逆: a.inv()
6.矩陣比較: a comp b,a comp a,a comp a。這裡comp包括 >,>=,==,!=,<=,<。得出的結果是乙個單通道8位的矩陣,元素的值為255或0。
7.矩陣位操作: a logic b, a logic s,s logic a。這裡logic包括:&,|,^
8.向量的差乘和內積: a.cross(b),a.dot(b);
*為防止溢位,矩陣乘法的矩陣元素型別至少是float,即cv_32f以上
外部函式實現:
以下四個函式分別實現矩陣逐畫素的加、減、乘、除:
void add(inputarray src1, inputarray src2, outputarray dst, inputarray mask=noarray(), int dtype=-1)`
void subtract(inputarray src1, inputarray src2, outputarray dst, inputarray mask=noarray(), int dtype=-1)
void multiply(inputarray src1, inputarray src2, outputarray dst, double scale=1, int dtype=-1 )
void divide(inputarray src1, inputarray src2, outputarray dst, double scale=1, int dtype=-1)
*src1和src2可以為mat或者scalar,如果乙個是mat,乙個scalar,則mat的元素的通道數要和scalar的維數相同。dtype可以控制輸出陣列的元素型別。注意,當輸出型別是cv_32s的時候,不進行溢位處理。
所有的矩陣運算函式:
OpenCV矩陣運算
矩陣處理 1 矩陣的記憶體分配與釋放 1 總體上 opencv 使用c語言來進行矩陣操作。不過實際上有很多c 語言的替代方案可以更高效地完成。在opencv中向量被當做是有乙個維數為1的n維矩陣.矩陣按行 行方式儲存,每行以4位元組 32位 對齊.2 為新矩陣分配記憶體 cvmat cvcreate...
Opencv 矩陣運算
效果等於src1 src2 void add inputarray src1,inputarray src2,outputarray dst,inputarray mask noarray int dtype 1 void subtract inputarray src1,inputarray sr...
OpenCV矩陣運算
矩陣處理 1 矩陣的記憶體分配與釋放 1 總體上 opencv 使用c語言來進行矩陣操作。不過實際上有很多c 語言的替代方案可以更高效地完成。在opencv中向量被當做是有乙個維數為1的n維矩陣.矩陣按行 行方式儲存,每行以4位元組 32位 對齊.2 為新矩陣分配記憶體 cvmat cvcreate...