在我們編寫halcon程序中可能常會用到圖像相減算子sub_image,例如在做高斯高通濾波的時候,最後的結果是要用原圖像減去濾波後的圖像才能得到銳化圖像。該算子的參數形式如下:
sub_image(ImageMinuend , ImageSubtrahend : ImageSub : Mult , Add :)
第一個參數是被減圖像,第二個參數是減數圖像,第三個參數是結果圖像,第四個參數是乘數因子,第五個參數是灰度補充值
算子可以用以下計算式子表達:
ImageSub =( ImageMinuend - ImageSubtrahend ) *Mult + Add
之所以乘以Mult是要拉大兩幅圖像相減後的對比度,加上一個Add是爲了增加相減後的圖像的整體亮度。
例子:
dev_close_window()
read_image(Image1,'fabrik')
get_image_size(Image1,width,height)
dev_open_window(0,0,width/1.2,height/1.2,'black',windowhandle)
dev_display(Image1)
dev_open_window(height/1.2, 0, width/1.2, height/1.2, 'black', WindowHandle1)
dev_open_window(0, width/1.2, width/1.2, height/1.2, 'black', WindowHandle2)
dev_set_window(WindowHandle1)
read_image(Image2, 'monKey')
dev_set_window(WindowHandle2)
*兩幅圖像相減乘以2拉大對比度,加上10提高整體亮度
sub_image(Image1, Image2, ImageSub, 2.0, 10.0)