網站首頁 編程語言 正文
Pillow圖像降噪處理
由于成像設備、傳輸媒介等因素的影響,圖像總會或多或少的存在一些不必要的干擾信息,我們將這些干擾信息統稱為“噪聲”
如數字圖像中常見的“椒鹽噪聲”,指的是圖像會隨機出現的一些白、黑色的像素點。圖像噪聲既影響了圖像的質量,又妨礙人們的視覺觀賞。因此,噪聲處理是圖像處理過程中必不可少的環節之一,我們把處理圖像噪聲的過程稱為“圖像降噪”。
隨著數字圖像技術的不斷發展,圖像降噪方法也日趨成熟,通過某些算法來構造濾波器是圖像降噪的主要方式。濾波器能夠有效抑制噪聲的產生,并且不影響被處理圖像的形狀、大小以及原有的拓撲結構。
Pillow 通過 ImageFilter 類達到圖像降噪的目的,該類中集成了不同種類的濾波器,通過調用它們從而實現圖像的平滑、銳化、邊界增強等圖像降噪操作。
使用 ImageFilter 類也會返回一個新對象
常見的降噪濾波器如下
{% asset_img 66.png This is an image %}
模糊處理
from PIL import Image, ImageFilter
img = Image.open("D:\File\All\web\python\blog\947849.jpg")
img1 = img.filter(ImageFilter.BLUR)
img1.show()
輪廓圖
from PIL import Image, ImageFilter
img = Image.open("D:\File\All\web\python\blog\947849.jpg")
img1 = img.filter(ImageFilter.CONTOUR)
img1.show()
邊緣檢測
from PIL import Image, ImageFilter
img = Image.open("D:\File\All\web\python\blog\947849.jpg")
img1 = img.filter(ImageFilter.FIND_EDGES)
img1.show()
浮雕圖
from PIL import Image, ImageFilter
img = Image.open("D:\File\All\web\python\blog\947849.jpg")
img1 = img.filter(ImageFilter.EMBOSS)
img1.show()
可以一個一個試試里面的不同的濾波器,還是挺好玩的 ,這里面這個輪廓圖加上界面的話可以弄一個畫素描的程序出來,但是一般都是用opencv里面的玩
Pillow圖像顏色處理
Pillow 提供了顏色處理模塊 ImageColor,該模塊支持不同格式的顏色,比如 RGB 格式的顏色三元組、十六進制的顏色名稱(#ff0000)以及顏色英文單詞("red")。同時,它還可以將 CSS(層疊樣式表,用來修飾網頁)風格的顏色轉換為 RGB 格式。
注意,在 ImageColor 模塊對顏色的大小寫并不敏感,比如 "Red" 也可以寫為 " red"。
顏色命名
ImageColor 支持多種顏色模式的的命名(即使用固定的格式對顏值進行表示),比如我們熟知的 RGB 色彩模式,除此之外,還有 HSL (色調-飽和度-明度)、HSB (又稱 HSV,色調-飽和度-亮度)色彩模式。
HSL:
H:即 Hue 色調,取值范圍 0 -360,其中 0 表示“red”,120 表示 “green”,240 表示“blue”;
S:即 Saturation 飽和度,代表色彩的純度,取值 0~100%,其中 0 代表灰色(gry),100% 表示色光最飽和;
L:即 Lightness 明度,取值為 0~100%,其中 0 表示“black”黑色,50% 表示正常顏色,100% 則表示白色。
getrgb()方法顧名思義,該函數用來得到顏色的 RGB 值,語法格式如下:
PIL.ImageColor.getrgb(color)
from PIL import Image,ImageColor
color1=ImageColor.getrgb("blue")
print(color1)
color2=ImageColor.getrgb('#DCDCDC')
print(color2)
color3=ImageColor.getrgb('HSL(0,100%,50%)')
print(color3)
原文鏈接:https://juejin.cn/post/7129442947099656200
相關推薦
- 2023-09-18 就同一個Service類中,一個事務方法調用另外一個有事務的方法
- 2022-12-05 c++入門必學庫函數sort的基本用法_C 語言
- 2023-02-17 linux?命令中的大于號、小于號的作用及代表的意思_linux shell
- 2022-10-28 UpdateLayeredWindow實現任意異形窗口使用詳解_C#教程
- 2022-08-23 python多線程對多核cpu的利用解析_python
- 2022-07-12 修改docker官方鏡像內部內容并重新build鏡像
- 2022-03-11 C++實操之內聯成員函數介紹_C 語言
- 2024-01-11 org.apache.commons.collections.MapUtils Map集合工具類
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支