opencv學習筆記 2 矩陣運算

2021-07-26 11:25:54 字數 1133 閱讀 2083

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...