取代圖片中顏色

有時需要幫圖片降低雜訊,需要取得部份的顏色,可以參考看看下列的例子。

前置作業

Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/change_color.py


使用範例

範例1:只保留紅色(255,0,0) 以外都變成白色。

指令範例:

change_color.py --input 0.png --reverse --from_r 255 --from_g 0 --from_b 0 --to_r 255 --to_g 255 --to_b 255 

執行結果:

範例2:純黑色(0,0,0) 換成紅色(255,0,0),但允許正負 10 的誤差.

指令:

change_color.py --input {} --fuzziness 10

執行結果:

當然,還有其他解法也很好。比較簡單的解法透過 opencv 來解決。

import cv2
# 讀取圖片
image_path = './your-image.jpg'
image = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)
# 將圖像轉換為灰度並創建一個 Alpha 通道
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 將鋸齒邊緣的部分平滑處理, 不建議大於3, 因為會讓線條暈開。
ksize = 3
blur_img = cv2.GaussianBlur(gray, (ksize,ksize), 0) 

# 一般圖二值化(有模糊降噪)
ret, th4 = cv2.threshold(blur_img,127,255,cv2.THRESH_BINARY)

filename = "output.jpg"
cv2.imwrite(filename, th4)


相關文章