【HALCON】給圖片增加水印

方式一:原始圖像和水印圖像相加

  • 子函數:AddWaterMaker
* 獲取圖像尺寸
get_image_size (Image, Width, Height)

* 打開一個不可見的圖像窗口
open_window (0, 0, Width, Height, 0, 'buffer', '', WindowHandle)
* 設置窗口的字體
set_font (WindowHandle, 'Courier New-Bold-' + WaterMakerSize)
* 設置字符串的位置
set_tposition (WindowHandle, WaterMakerRow, WaterMakerColumn)
* 寫字符串
write_string(WindowHandle, WaterMakerString)
* 截取窗口
dump_window_image (ImageDump, WindowHandle)
* 訪問第一通道
access_channel (ImageDump, ImageOne, 1)
* 圖像增加
add_image (Image, ImageOne, ImageResult, 1, 0)

return ()
  • 測試:
read_image (Image, 'printer_chip/printer_chip_01')
AddWaterMaker (Image, ImageResult, 'WaterMaker', 100, 100, 100)
dev_display (ImageResult)
  • 結果:

方式二:在原始圖像上繪製

  • 子函數:AddWaterMaker
* 獲取圖像尺寸
get_image_size (Image, Width, Height)

* 打開一個不可見的圖像窗口
open_window (0, 0, Width, Height, 0, 'buffer', '', WindowHandle)
* 設置窗口的字體
set_font (WindowHandle, 'Courier New-Bold-' + WaterMakerSize)
* 設置字符串的位置
set_tposition (WindowHandle, WaterMakerRow, WaterMakerColumn)
* 寫字符串
write_string(WindowHandle, WaterMakerString)
* 截取窗口
dump_window_image (ImageDump, WindowHandle)
* 訪問第一通道
access_channel (ImageDump, ImageOne, 1)
* 二值化提取字符串區域
threshold (ImageOne, Region, 128, 255)
* 在原始圖像上繪製區域
paint_region (Region, Image, ImageResult, 255, 'fill')

return ()
  • 測試:
read_image (Image, 'printer_chip/printer_chip_01')
AddWaterMaker (Image, ImageResult, 'WaterMaker2', 100, 300, 200)
dev_display (ImageResult)
  • 結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章