cvAdd 和 cvAddS 函式的使用

2021-08-27 13:15:26 字數 2059 閱讀 4214

函式原型如下:

voidcvadd( const cvarr* src1, const cvarr* src2, cvarr* dst, const cvarr* mask=null );

src1

第乙個原陣列

src2

第二個原陣列

dst

輸出陣列

mask

操作的覆蓋面, 8-bit單通道陣列; 只有覆蓋面指定的輸出陣列被修改。

函式 cvadd 加乙個陣列到別乙個陣列中:

dst(i)=src1(i)+src2(i) if mask(i)!=0

除覆蓋面外所有的陣列必須有相同的型別相同的大小(或roi尺寸)。

voidcvadds( const cvarr* src, cvscalar value, cvarr* dst, const cvarr* mask=null );

src

原陣列.

value

被加入數量

dst

輸出陣列

mask

操作的覆蓋面(8-bit單通道陣列) ; 只有覆蓋面指定的輸出陣列被修改

函式 cvadds 用數量值與原陣列src1的每個元素想加並存貯結果到

dst(i)=src(i)+value if mask(i)!=0

除覆蓋面外所有陣列都必須有相同的型別,相同的大小(或roi大小)

例子如下:

[cpp]view plain

copy

print?

#include"stdafx.h"

#include"cv.h"

#include"highgui.h"

intmain(intargc,char*argv)

#include "stdafx.h"

#include "cv.h"

#include "highgui.h"

int main(int argc,char* argv)

好像cvadd()函式要求src和dst都必須是相同的size,所以在程式開始時,我把它們的大小進行統一。

而cvadds()函式,我用原進行加value,好像有一點問題,

執行時出現錯誤 0x7c812afb 處未處理的異常: microsoft c++ 異常: 記憶體位置 0x0011f194 處的 cv::exception。

這是乙個經常出現的問題,好像說是因為記憶體分配不足照成的,但是我查閱了好多資料,都是說記憶體的問題,但是我在申請資源是都是在後邊釋放的,具體為什麼,一直沒弄明白,所以在程式開頭,我把尺寸變小一點,這樣分配記憶體時,可以執行了,而且這裡

cvscalar s=cvscalar(0,0,100),乙個中的通道時bgr這樣分布的,所以cvscalar時,val裡面儲存的數字就不一樣,正好可以和不同的通道進行位與運算,從而改變不同通道的畫素值。

cvAdd 和 cvAddS 函式的使用

函式原型如下 voidcvadd const cvarr src1,const cvarr src2,cvarr dst,const cvarr mask null src1 第乙個原陣列 src2 第二個原陣列 dst 輸出陣列 mask 操作的覆蓋面,8 bit單通道陣列 只有覆蓋面指定的輸出陣...

已知原函式和導函式的關係 原函式和導函式的關係

專業知識整理分享 課題 原函式與導函式的關係 首師大附中 數學組王建華 設計思路 這節課就是在學完導數與積分之後 學生從大量的例項中對原函式與導函式的關係有了 一定的認識的基礎上展開教學的。由於這部分內容課本上沒有 但數學內部的聯絡規律與對 稱美又會使學生既覺得有挑戰性又充滿 的興趣。備這個課的過程...

已知原函式和導函式的關係 原函式和導函式的關係

課題 原函式與導函式的關係 首師大附中 數學組 王建華 設計思路 這節課就是在學完導數與積分之後,學生從大量的例項中對原函式與導函式的關係有了一定的認識的基礎上展開教學的。由於這部分內容課本上沒有,但數學內部的聯絡規律與對稱美又會使學生既覺得有挑戰性又充滿 的興趣。備這個課的過程中我雖然參考了大量已...