pillow學習5

ImageEnhance 模塊
內置的 ImageEnhance 模塊中包含了多個用于增強圖像效果的函數,主要用來調整圖像
的色彩、對比度、亮度和清晰度等,感覺上和調整電視機的顯示參數一樣。
在模塊 ImageEnhance 中,所有的圖片增強對象都實現一個通用的接口。這個接口只包
含如下一個方法。
方法 enhance()會返回一個增強的 Image 對象,參數 factor 是一個大于 0 的浮點數,1 表
示返回原始圖片。
當在 Python 程序中使用模塊 ImageEnhance 增強圖像效果時,需要首先創建對應的增強
調整器,然后調用調整器輸出函數,根據指定的增強系數(小于 1 表示減弱,大于 1 表示增
強,等于 1 表示原圖不變)進行調整,最后輸出調整后的圖像。
在模塊 ImageEnhance 中,常用的內置函數如下所示:
(1)ImageEnhance.Color(image ):功能是調整圖像色彩平衡,相當于彩色電視機的色彩調整,實現了上邊提到的接口的enhance 方法。
(2)ImageEnhance.Contrast(image ):功能是調整圖像對比度,相當于彩色電視機的對比度調整。
(3)ImageEnhance.Brightness(image ):功能是調整圖像亮度。
(4)ImageEnhance.Sharpness(image ):功能是調整圖像清晰度,用于銳化/鈍化圖片。
銳化操作的 factor 是 0~2 之間的一個浮點數。當 factor=0 時,返回一個模糊的圖片對象;當 factor=2 時,返回一個銳化的圖片對象;當 factor=1 時,返回原始圖片對象。

銳化(Sharpening):
銳化是一種圖像處理技術,旨在增強圖像中的細節和邊緣,使它們看起來更清晰和更突出。
銳化通過增強圖像中像素之間的對比度來實現,從而使邊緣更加清晰。這通常會使圖像看起來更加清晰。
銳化通常用于強調圖像中的細節,使圖像看起來更加清晰和有視覺沖擊力。
鈍化(Blurring):
鈍化是一種圖像處理技術,旨在減少圖像中的細節和邊緣的清晰度,使其看起來更加模糊或柔和。
鈍化通過模糊圖像中的像素來實現,從而減少細節和邊緣的清晰度。這通常用于柔化圖像或減少噪點。
鈍化可以用于減輕圖像中的噪聲、平滑皮膚紋理或創建藝術效果。
因此,銳化和鈍化都是常見的圖像處理技術,用于改變圖像的外觀和細節水平。選擇使用哪種處理取決于您想要實現的效果以及圖像的特定要求
ImageDraw 模塊
ImageDraw 模塊實現了繪圖功能。可以通過創建圖片的方式來繪制 2D 圖像;還可以在原有的圖片上進行繪圖,已達到修飾圖片或對圖片進行注釋的目的。
在 ImageDraw 模塊繪圖時需要首先創建一個 ImageDraw.Draw 對象,并且提供指向文件的參數。然后引用創建的 Draw 對象方法進行繪圖。最后保存或直接輸出繪制的圖像。

drawObject=ImageDraw.Draw(black)

繪制直線
表示以(x1,y1)為起始點,以(x2,y2)為終止點畫一條直線。[x1,y1,x2,y2]也可以寫為(x1,y1,x2,y2)、[(x1,y1),(x2,y2)]等;fill 用于設置指定線條顏色;width 設置線條的寬度;joint表示一系列線之間的聯合類型。它可以是“曲線”。

drawObject.line([x1,y1,x2,y2],fill = None,width = 0,joint = None

繪制圓弧
在左上角坐標為(x1,y1),右下角坐標為(x2,y2)的矩形區域內,滿圓 O 內,以 start 為起始角度,以 end 為終止角度,截取圓 O 的一部分圓弧并畫出來。如果[x1,y1,x2,y2]區域不是正方形,則在該區域內的最大橢圓中根據角度截取片段。參數 fill 和 width 與 line 方法相
同。

drawObject.arc([x1,y1,x2,y2],start,end,fill = None,width = 0

繪制橢圓

drawObject.ellipse([x1,y1,x2,y2],fill = None,outline = None,width = 0

繪制弦

drawObject.chord([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0

用法同 arc 類似,用于畫圓中從 start 到 end 的弦。fill 表示弦與圓弧之間空間用指定顏色填滿,設置為 outline 表示只規定弦線的顏色。
繪制扇形

drawObject.pieslice([x1,y1,x2,y2],start,end,fill = None,outline = None,width = 0

用法同 elipse 類似,用于畫起止角度間的扇形區域。fill 表示將扇形區域用指定顏色填
滿,設置為 outline 表示只用指定顏色描出區域輪廓。

繪制多邊形
drawObject.polygon([x1,y1,x2,y2,…],fill = None,outline = None )
根據坐標畫多邊形,Python 會根據第一個參量中的(x,y)坐標對,連接出整個圖形。
fill 表示將多邊形區域用指定顏色填滿,outline 只用于設置指定顏色描出區域輪廓。

繪制矩形

drawObject.rectangle([x1,y1,x2,y2],fill = None,outline = None,width = 0

在指定的區域內畫一個矩形,(x1,y1)表示矩形左上角的坐標,(x2,y2)表示矩形右
下角的坐標。fill 用于將矩形區域顏色填滿,outline 用于描出區域輪廓。
繪制矩形

drawObject.rectangle([x1,y1,x2,y2],fill = None,outline = None,width = 0

在指定的區域內畫一個矩形,(x1,y1)表示矩形左上角的坐標,(x2,y2)表示矩形右
下角的坐標。fill 用于將矩形區域顏色填滿,outline 用于描出區域輪廓。
繪制文字

drawObject.text(position,text,fill = None,font = None,anchor = None,spacing = 0,
align =“left”,direction = None,features = None,language = None

在圖像內添加文字。其中參數 position 是一個二元組,用于指定文字左上角的坐標;text
表示要寫入的文字內容;fill 表示文本的顏色;font 必須為 ImageFont 中指定的 font 類型;
spacing 表示行之間的像素數;align 表示位置“left”,“center”或“right”;direction 表示文字的方向。它可以是’rtl’(從右到左),‘ltr’(從左到右)或’ttb’(從上到下)。

from PIL import Image, ImageDraw
img = Image.open("lena.jpg")
draw = ImageDraw.Draw(img)
width, height = img.size
draw.arc( (0, 0, width-1, height-1), 0, 360, fill='blue')
img.save("circle.jpg")

ImageFont 模塊
ImageFont 的功能是實現對字體和字型的處理。比較常用的內置函數如下所示:
(1)load():從指定的文件中加載一種字體,該函數返回對應的字體對象。如果該函數運行
失敗,那么將產生 IOError 異常。語法格式如下:

ImageFont.load(文件名)

(2)load_path():和函數 load()一樣,但是如果沒有指定當前路徑,就會從文件 sys.path 開
始查找指定的字體文件。語法格式如下:

ImageFont.load_path(文件名)

(3)truetype():有兩種定義格式。第 1 種格式的功能是加載一個 TrueType 或者 OpenType
字體文件,并且創建一個字體對象。在 Windows 系統中,如果指定的文件不存在,加載器就會順便看看 Windows 的字體目錄下它是否存在。語法格式如下:

ImageFont.truetype(file,size)

第 2 種格式的功能是,加載一個 TrueType 或者 OpenType 字體文件,并且創建一個字體對象。通常的編碼方式是“unic”(Unicode)、“symb”(MicrosoftSymbol)、“ADOB”
(Adobe Standard)、“ADBE”(Adobe Expert)和“armn”(Apple Roman)。語法格式如下:

ImageFont.truetype(file,size,encoding=value)

(4)load_default():功能是加載一種默認的字體。

ImageFont.load_default()

(5)getsize():返回給定文本的寬度和高度,返回值是一個二元組。具體語法格式如下:

ImageFont.getsize()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/14349.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14349.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/14349.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nginx的配置以及常見命令

Nginx配置與常用命令指南 Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。由于它的穩定性、豐富的功能集、簡單的配置文件和低資源消耗,Nginx在全球范圍內被廣泛使用。在本文中,我們將介紹Nginx的基本配置和一些常…

車載網絡測試實操源碼_使用CAPL腳本模擬發送符合協議要求(Counter和CRC)的CAN報文

系列文章目錄 車載網絡測試實操源碼_使用CAPL腳本解析hex、S19、vbf文件 車載網絡測試實操源碼_使用CAPL腳本對CAN報文的Counter和CRC進行實時監控 車載網絡測試實操源碼_使用CAPL腳本模擬發送符合協議要求(Counter和CRC)的CAN報文 車載網絡測試實操源碼_使用CAPL腳本實現安全…

利用神經網絡學習語言(四)——深度循環神經網絡

相關說明 這篇文章的大部分內容參考自我的新書《解構大語言模型:從線性回歸到通用人工智能》,歡迎有興趣的讀者多多支持。 本文涉及到的代碼鏈接如下:regression2chatgpt/ch10_rnn/char_rnn_batch.ipynb 《循環神經網絡(RNN&…

【移花接木】OpenCV4.8 For Java 深度學習 實時人臉檢測

學習《OpenCV應用開發:入門、進階與工程化實踐》一書,學會本文所有技能就這么簡單! 做真正的OpenCV開發者,從入門到入職,一步到位! 前言 我寫這篇文章之前,我搜索整個網絡文章跟問各種語言大模…

速賣通測評揭秘:如何選擇安全的渠道操作

許多商家對測評存在誤解,認為只需進行幾次測評就能迅速打造爆款。實際上,測評是一個需要計劃和持久性的過程,以便讓平臺檢測到產品的受眾程度并提高產品的曝光和權重。 在進行測評時,安全是首要考慮的問題。平臺可以通過設備、網…

黑馬點評1——短信篇(基于session)

🌈hello,你好鴨,我是Ethan,一名不斷學習的碼農,很高興你能來閱讀。 ??目前博客主要更新Java系列、項目案例、計算機必學四件套等。 🏃人生之義,在于追求,不在成敗,勤通…

如何使用多種算法解決LeetCode第135題——分發糖果問題

?????? 歡迎來到我的博客。希望您能在這里找到既有價值又有趣的內容,和我一起探索、學習和成長。歡迎評論區暢所欲言、享受知識的樂趣! 推薦:數據分析螺絲釘的首頁 格物致知 終身學習 期待您的關注 導航: LeetCode解鎖100…

WPF 的 style 定義 使用 繼承 復用

style 樣式 如何定義一個 style 樣式 <Button Content"樣式" Width"100" Height"50"><Button.Style><Style></Style></Button.Style></Button>擁有的屬性 targetType “” 針對什么類型生效setter 設置屬…

Ubuntu中 petalinux 安裝 移植linux --tftp/tftp-hpa服務的方法

Xilinx 文檔 PetaLinux 指南&#xff1a;如何創建 PetaLinux 環境 &#xff08;2019.1&#xff09; PetaLinux工具參考指南 PetaLinux安裝詳解(Xilinx , linux, zynq, zynqMP) petalinux 2020.1安裝教程 一、PetaLinux工具和庫安裝 PetaLinux 工具要求主機系統 /bin/sh 為“b…

18.網絡編程

網絡編程 又稱為Socket編程。 Java中網絡編程主要是以Java語言完成信息數據在網絡上的傳輸。 網絡 計算機網絡&#xff0c;指的是將不同地理位置的多臺計算機連接起來&#xff0c;可以實現信息共享和信息傳輸。 Java是Internet上的語言&#xff0c;提供了對網絡應用程序的…

筆記 | 《css權威指南》

網絡安全色 URL text-indent line-height & vertical-align 字體 font-weight 400 normal 700 bold background-attachment

SpringBoot項目集成JetCache緩存框架步驟

JetCache是阿里開源的基于java開發的緩存框架&#xff0c;支持多種緩存類型&#xff1a;本地緩存、分布式緩存、多級緩存。能夠滿足不同業務場景的緩存需求。 1.導入依賴 <!--jetcache緩存 --> <dependency><groupId>com.alicp.jetcache</groupId>&l…

【調試筆記-20240516-Windows-使用VS2019編譯edk2(上)】

調試筆記-系列文章目錄 調試筆記-20240516-Windows-使用VS2019編譯edk2&#xff08;上&#xff09; 文章目錄 調試筆記-系列文章目錄調試筆記-20240516-Windows-使用VS2019編譯edk2&#xff08;上&#xff09; 前言一、安裝開發工具1. 安裝 VS20192. 安裝 Python 3.103. 安裝 …

pdf加水印怎么加?3種添加水印方法分享

pdf加水印怎么加&#xff1f;PDF加水印不僅是為了保護文檔內容&#xff0c;確保信息的安全性和完整性&#xff0c;更是一種有效的版權保護措施。通過添加水印&#xff0c;您可以在文檔中嵌入公司名稱、日期、編號等信息&#xff0c;以明確文檔的歸屬權和使用限制。此外&#xf…

小而美:兩步完成從源碼到應用的極簡交付

作者&#xff1a;花三&#xff08;王俊&#xff09; Serverless 應用引擎 SAE 是阿里云推出的一款零代碼改造、極簡易用、自適應彈性的容器化應用托管平臺&#xff0c;面市以來為幾萬家企業客戶提供服務&#xff0c;運行穩定&#xff0c;廣受好評。 SAE 的出現解決了眾多企業…

Python庫之lxml的簡介、安裝、使用方法詳細攻略

Python庫之lxml的簡介、安裝、使用方法詳細攻略 簡介 lxml是一個用于處理XML和HTML文檔的Python庫&#xff0c;它提供了簡單易用的API來解析和生成這些文檔。lxml以其性能和易用性而受到廣泛歡迎&#xff0c;特別適合于需要處理大量數據或需要高性能解析的場景。 安裝 安裝…

運行時異常和編譯時異常的區別

Java中的異常被分為兩大類&#xff1a;編譯時異常和運行時異常。 都是RuntimeException類及其子類異常&#xff0c;如NullPointerException、IndexOutOfBoundsException。這些異常是不檢查異常&#xff0c;運行時異常的特點是Java編譯器不會檢查它&#xff0c;程序中可以選擇捕…

純代碼如何實現WordPress搜索包含評論內容?

WordPress自帶的搜索默認情況下是不包含評論內容的&#xff0c;不過有些WordPress網站評論內容比較多&#xff0c;而且也比較有用&#xff0c;所以想要讓用戶在搜索時也能夠同時搜索到評論內容&#xff0c;那么應該怎么做呢&#xff1f; 網絡上很多教程都是推薦安裝SearchWP插…

RK3588 Android13 預安裝自己的apk應用及把這個應用設置為默認桌面

1、cp -rf device/rockchip/rk3588/rk3588m_s/preinstall device/rockchip/rk3588/rk3588_t/ 2、給device/rockchip/rk3588/rk3588_t/preinstall/的存放app的文件夾改名為app-imms2&#xff0c;在app-imms2放入app-imms2.apk,編譯安卓源碼即可&#xff0c; 3、編譯完會在out/…

android sp指針的cast

sp<Base> b; sp<Derived> d; b static_cast<Base*>(d.get()); 對于c原生的智能指針&#xff0c;有static_pointer_cast之類的操作方法。可以看cppreference。