最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python PIL繪制矩形框的常用方法總結(jié)

 更新時間:2026年05月26日 08:21:02   作者:detayun  
本文介紹了使用Python PIL庫繪制矩形框的方法,基礎(chǔ)代碼展示了如何打開圖片、創(chuàng)建繪圖對象、繪制紅色矩形框并保存,最后提示了中文路徑的處理建議,希望幫助大家避免常見問題

基礎(chǔ)代碼

from PIL import Image, ImageDraw

# 打開圖片
img = Image.open('your_image.jpg')

# 創(chuàng)建繪圖對象
draw = ImageDraw.Draw(img)

# 矩形坐標 (x1, y1, x2, y2)
coords = (23, 21, 69, 76)

# 畫矩形框(紅色,線寬2)
draw.rectangle(coords, outline='red', width=2)

# 保存圖片
img.save('output.jpg')
img.show()

效果說明

參數(shù)說明
coords = (23, 21, 69, 76)左上角(23,21),右下角(69,76)
outline='red'邊框顏色
width=2邊框粗細

更多用法

1.填充矩形(實心)

draw.rectangle(coords, fill='blue', outline='red', width=2)

2.半透明矩形(Pillow 9.0+)

draw.rectangle(coords, fill=(255, 0, 0, 128), outline='red', width=2)
# RGBA,最后一個值是透明度 0-255

3.多種顏色樣式

# 綠色虛線框
draw.rectangle(coords, outline='green', width=3)

# 黃色粗框
draw.rectangle(coords, outline='yellow', width=5)

# 白色細框
draw.rectangle(coords, outline='white', width=1)

完整示例(含新建圖片)

from PIL import Image, ImageDraw

# 如果沒有圖片,可以新建一個
img = Image.new('RGB', (200, 200), color='white')
draw = ImageDraw.Draw(img)

# 畫矩形
draw.rectangle((23, 21, 69, 76), outline='red', width=2)

img.save('result.jpg')
img.show()

坐標示意

(23,21) ───────── (69,21)
   │                 │
   │   矩形區(qū)域       │
   │                 │
(23,76) ───────── (69,76)

提示:如果圖片路徑包含中文,建議用 Image.open(r'路徑') 或處理編碼問題。

知識擴展

在 Python 中用 PIL(實際是它的升級版 Pillow)繪制矩形框是非常簡單的。通過 ImageDraw.Draw 對象的 rectangle() 方法即可實現(xiàn)。

1. 安裝 Pillow

pip install Pillow

2. 基本用法

from PIL import Image, ImageDraw
# 創(chuàng)建一個 400x300 的白色圖像(RGB模式)
img = Image.new('RGB', (400, 300), color='white')
# 獲取繪圖上下文
draw = ImageDraw.Draw(img)
# 繪制矩形框:(x1, y1) 左上角,(x2, y2) 右下角
draw.rectangle((50, 50, 350, 250), outline='red', width=3)
# 顯示或保存圖像
img.show()
img.save('rectangle.png')

3. 參數(shù)詳解

rectangle(xy, fill=None, outline=None, width=1)

參數(shù)說明
xy矩形坐標,可接受 (x1, y1, x2, y2) 或 [(x1,y1), (x2,y2)] 兩種形式
fill填充顏色,如 'blue'、(0,255,0)'#FF00FF'。None 表示不填充
outline邊框顏色,同上。若為 None 則不繪制邊框
width邊框?qū)挾龋ㄏ袼兀?,默認為 1

4. 示例:實心矩形 + 邊框

draw.rectangle((50, 50, 150, 150), fill='lightblue', outline='black', width=3)

5. 示例:多個矩形,支持 RGBA 透明度

from PIL import Image, ImageDraw
img = Image.new('RGBA', (400, 300), color=(255,255,255,0))  # 透明背景
draw = ImageDraw.Draw(img)
# 半透明填充(需要 RGBA 模式)
draw.rectangle((30, 30, 180, 130), fill=(255,0,0,128), outline=(0,0,0,255))
draw.rectangle((200, 50, 350, 200), outline='green', width=4)
img.save('rect_alpha.png')

6. 在現(xiàn)有圖像上繪制矩形框(例如標注人臉)

from PIL import Image, ImageDraw
img = Image.open('photo.jpg')
draw = ImageDraw.Draw(img)
# 在坐標區(qū)域繪制紅色框
draw.rectangle((120, 80, 250, 210), outline='red', width=5)
img.show()
img.save('annotated.jpg')

7. 使用相對坐標(通過 bounding box)

# 對 PIL 圖像對象本身獲取寬度高度
width, height = img.size
left = width * 0.2
top = height * 0.2
right = width * 0.8
bottom = height * 0.8
draw.rectangle((left, top, right, bottom), outline='yellow', width=4)

總結(jié)

  • 核心是 ImageDraw.Draw 的 rectangle() 方法。
  • 可以自由指定顏色、邊框?qū)挾?、是否填充?/li>
  • 支持 RGB / RGBA 顏色模式,實現(xiàn)透明或半透明效果。
  • 配合 Image.new() 可以創(chuàng)建全新矩形圖像,配合 Image.open() 可以在已有圖片上標注。

到此這篇關(guān)于Python PIL繪制矩形框的常用方法總結(jié)的文章就介紹到這了,更多相關(guān)Python PIL繪制矩形框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python實現(xiàn)遺傳算法的詳細步驟

    使用Python實現(xiàn)遺傳算法的詳細步驟

    遺傳算法是模仿自然界生物進化機制發(fā)展起來的隨機全局搜索和優(yōu)化方法,它借鑒了達爾文的進化論和孟德爾的遺傳學說,其本質(zhì)是一種高效、并行、全局搜索的方法,本文給大家介紹了使用Python實現(xiàn)遺傳算法的詳細步驟,需要的朋友可以參考下
    2023-11-11
  • jupyter note 實現(xiàn)將數(shù)據(jù)保存為word

    jupyter note 實現(xiàn)將數(shù)據(jù)保存為word

    這篇文章主要介紹了jupyter note 實現(xiàn)將數(shù)據(jù)保存為word,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Numpy之布爾索引的實現(xiàn)

    Numpy之布爾索引的實現(xiàn)

    本文主要介紹了Numpy之布爾索引的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • python實現(xiàn)感知機線性分類模型示例代碼

    python實現(xiàn)感知機線性分類模型示例代碼

    這篇文章主要給大家介紹了關(guān)于python實現(xiàn)感知機線性分類模型的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • Python中np.random.randint()參數(shù)詳解及用法實例

    Python中np.random.randint()參數(shù)詳解及用法實例

    numpy.random.randint()函數(shù)不僅可以生成一維隨機數(shù)組,也可以生成多維度的隨機數(shù)組,下面這篇文章主要給大家介紹了關(guān)于Python中np.random.randint()參數(shù)詳解及用法的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 手把手教你部署AI小說生成器(Python環(huán)境搭建)

    手把手教你部署AI小說生成器(Python環(huán)境搭建)

    本文詳細介紹了如何使用Python+AI從零開始搭建屬于自己的AI小說生成器,文章分為環(huán)境準備、第一次安裝、關(guān)機重啟、配置大腦等步驟進行講解,幫助用戶輕松實現(xiàn)AI輔助創(chuàng)作
    2026-04-04
  • python實現(xiàn)2014火車票查詢代碼分享

    python實現(xiàn)2014火車票查詢代碼分享

    學習習PYTHON開始,實現(xiàn)了一個火車票查詢的小功能,希望能幫大家買到回家的票
    2014-01-01
  • Pickle模塊中的dump()和load()方法簡介

    Pickle模塊中的dump()和load()方法簡介

    Pickle模塊實現(xiàn)了基本的數(shù)據(jù)序列化與反序列化操作,通過序列化操作,我們可以將程序中運行的對象信息轉(zhuǎn)化為字節(jié)流保存到文件中去,永久存儲在磁盤上,這篇文章主要介紹了Pickle模塊中的dump()和load()方法介紹,需要的朋友可以參考下
    2023-03-03
  • 整理Python中常用的conda命令操作

    整理Python中常用的conda命令操作

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著Python中常用的conda命令行操作展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python串口如何讀取byte類型數(shù)據(jù)并訪問

    python串口如何讀取byte類型數(shù)據(jù)并訪問

    這篇文章主要介紹了python串口如何讀取byte類型數(shù)據(jù)并訪問方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論

旺苍县| 越西县| 青神县| 新绛县| 双柏县| 普陀区| 华阴市| 七台河市| 长治县| 雷波县| 晋中市| 榕江县| 上饶县| 汕尾市| 正宁县| 吕梁市| 宜昌市| 黑水县| 博乐市| 长子县| 蛟河市| 济阳县| 安仁县| 年辖:市辖区| 南皮县| 长汀县| 怀集县| 沾益县| 皋兰县| 密云县| 阿城市| 扎赉特旗| 万载县| 宜丰县| 乐清市| 温州市| 沧州市| 平潭县| 朝阳县| 新巴尔虎右旗| 涿鹿县|