opencv學習(二) 矩陣的掩碼操作

2021-09-23 17:21:04 字數 1247 閱讀 1311

矩陣的掩碼操作

根據掩碼矩陣(也稱作核)重新計算影象中每個畫素的值。掩碼矩陣中的值表示近鄰畫素值(包括該畫素自身的值)對新畫素值有多大影響。從數學觀點看,我們用自己設定的權值,對畫素鄰域內的值做了個加權平均。

對影象的每個畫素應用下面的公式:

即:每個畫素 = 該畫素*5 - 相鄰上下左右的畫素的和

原始演算法按照這個公式邊界值是計算不了的,因為會訪問到旁邊不存在的元素,需要將邊界元素設定成 0

那麼,影象矩陣經過這個操作後會發生什麼呢?

假設中間畫素是很亮的話,顯然經過運算會更亮。中間元素亮度低的話,經過運算就會更暗。因此經過這個運算後影象對比度會增強,亮的更亮,暗的更暗

下面的函式就是將原影象和掩碼矩陣進行卷積運算

mat.filter2d(ddepth: number, kernel: mat, anchor?: point2, delta?: number, bordertype?: number): mat

const cv =

require

("opencv4nodejs");

const input = cv.

imread

("../../data/lenna.png");

// 掩碼矩陣

// 必須是單通道浮點型矩陣

const kernel =

newcv.mat([

[0,-

1,0]

,[-1

,5,-

1],[

0,-1

,0]]

, cv.

cv_32fc1);

const output = input.

filter2d

(input.depth, kernel)

;cv.

imshow

("input"

, input)

;cv.

imshow

("output"

, output)

;cv.

waitkey()

;

函式引數解釋

tips:

OpenCV學習筆記 矩陣的掩碼操作

矩陣的掩碼操作很簡單。其思想是 根據掩碼矩陣 也稱作核 重新計算影象中每個畫素的值。掩碼矩陣中的值表示近鄰畫素值 包括該畫素自身的值 對新畫素值有多大影響。從數學觀點看,我們用自己設定的權值,對畫素鄰域內的值做了個加權平均。思考一下影象對比度增強的問題。我們可以對影象的每個畫素應用下面的公式 上面那...

OpenCv矩陣掩碼操作

定義 矩陣的掩碼操作就是重新計算影象中的每個畫素值。應用 常用於影象平滑,邊緣檢測,特徵分析等區域。方法 第一種使用公式,第二種使用filter2d 函式 include include includeusing namespace cv using namespace std int main n...

OpenCV學習之四 矩陣的掩碼操作

矩陣的掩碼操作很簡單。其思想是 根據掩碼矩陣 也稱作核 重新計算影象中每個畫素的值。掩碼矩陣中的值表示近鄰畫素值 包括該畫素自身的值 對新畫素值有多大影響。從數學觀點看,我們用自己設定的權值,對畫素鄰域內的值做了個加權平均。思考一下影象對比度增強的問題。我們可以對影象的每個畫素應用下面的公式 上面那...