有時需要幫圖片降低雜訊,需要取得部份的顏色,可以參考看看下列的例子。
前置作業
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)
相關文章
- Changing pixel color Python
https://stackoverflow.max-everyday.com/2021/06/changing-pixel-color-python/ - 【錢不夠買ps的我,只好用OpenCV來修圖了!】
https://ithelp.ithome.com.tw/users/20120424/ironman/3642