圖像處理_Image

来源:https://www.cnblogs.com/wljlxx/archive/2019/10/17/11695390.html
-Advertisement-
Play Games

1. 安裝 輸入 pip install PIL報錯: ERROR: Could not find a version that satisfies the requirement PIL (from versions: none) ERROR: No matching distribution f ...


1.       安裝

   輸入 pip install PIL報錯:

  ERROR: Could not find a version that satisfies the requirement PIL (from versions: none)
  ERROR: No matching distribution found for PIL

解決方案:

Python3中Pillow源自PIL(在2中使用)

(1)       python -m pip install Pillow

(2)       pip install path\文件名 文件名為在網址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

中下載對應的模塊。

使用(1)時報錯:

ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

超時問題,延長時間:

python -m pip --default-timeout=100 install -U Pillow

 

註:pillow是PIL(Python成像庫)的一個分支,不再被維護。所以,為了保持向後相容性,往往使用舊的模塊名稱——PIL,即引用模塊,直接使用import PIL

 

2.       功能

以快速訪問幾種基本像素類型表示的圖像數據為核心,能對圖像做歸檔處理、顯示圖像、常見的圖像處理(變換、點操作、濾波、顏色等等)。

1.1         Image模塊

from PIL import Image

 

# 打開一個圖像

Picture = Image.open("C:\\Users\\sue\\Pictures\\test.png")

print(Picture)

 

# 返回圖像實例的屬性

print("圖像格式:{};圖像模式:{};圖像大小:{}。".format(Picture.format,Picture.mode,Picture.size))

 

 

# 查看實例,show是暫時存放了一個臨時文件,存在效率問題

Picture.show()

 

# 實例的方法:

# 1.保存圖片,以及轉換圖片格式,無法轉換報轉換錯誤:svae(存儲文件名[,存儲文件格式:可省略由擴展名決定])

Picture.save("C:\\Users\\sue\\Pictures\\test2.png","PNG")

 

Picture.save("C:\\Users\\sue\\Pictures\\test3.jpg")

try:

    Picture.save("C:\\Users\\sue\\Pictures\\test4.jpg","JPG") #明確格式後,加轉換格式反而報錯KeyError

except:

    print("cannot convert")

 

# 2.製作縮略圖 p.thumbnail((x,y)),參數為一個元組

width,heighth = Picture.size

Picture.thumbnail((width/2,heighth/2))

Picture.save("C:\\Users\\sue\\Pictures\\test2.png","PNG")

 

 

# 3.裁剪圖片:p.crop((x,y,x+m,y+n)),x,y為以圖片左上角為原點,向下為y軸,向右為x軸;

#   m,n為想要裁剪的長寬

#  在原圖(20,10)的位置開始裁剪一個長為200,寬100的圖

PCrop = Picture.crop((20,40,20+200,10+100))

PCrop.show()

 

# 4.變形和粘貼

#  p.transpose(Image.XX):其中XX=FLIP_LEFT_RIGHT(左右鏡像);FLIP_TOP_BOTTOM(上下鏡像)

#    ROTATE_90(逆時針旋轉90度);RATATE_180(逆時針旋轉180度);ROTATAE_270;

#    TRANSPOSE(像素矩陣轉置,空間變換);TRANVERSE(空間變換)

#  p.paste(p1,(x,y,x+m,y+n)),將圖片p1粘貼到p的(x,y)處,占長m寬n的大小。後面兩個不寫就是完全粘貼p1

 

from PIL import Image

 

# 將人物圖像的左邊鏡像顛倒,複製到右邊,右邊原樣複製到左邊

def P_transpose(P):

    x,y = P.size

 

    pleft = P.crop((0,0,x//2,y))

    pright = P.crop((x//2,0,x,y))

 

    pleft = pleft.transpose(Image.FLIP_TOP_BOTTOM)

 

    P.paste(pright,(0,0,x//2,y))

    P.paste(pleft,(x//2,0,x,y))

    P.show()

 

Picture = Image.open("C:\\Users\\sue\\Pictures\\人物.png")

P_transpose(P)

 

# 5.調整尺寸

# resize((m,n))

# rotate(sigma),逆時針調整角度


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ORM簡介 學習orm之前,先記住這張圖: MVC或者MTV框架中包括一個重要的部分,就是ORM,它實現了數據模型與資料庫的解耦,即數據模型的設計不需要依賴於特定的資料庫,通過簡單的配置就可以輕鬆更換資料庫,這極大的減輕了開發人員的工作量,不需要面對因資料庫變更而導致的無效勞動 ORM是“對象-關係 ...
  • 一 圖像閾值處理 準備一張灰度圖像 閾值處理通常是設定一個閾值,讓圖片的所有像素點的值與其比較做出一系列的操作。 在opencv常用的閾值處理函數有五種,分別是THRESH_BINARY、THRESH_BINARY_INV、THRESH_TRUNC、THRESH_TOZERO、THRESH_TOZE ...
  • python第一節 1.變數 變數,是用於在記憶體中存放程式數據的容器 電腦的核心為“計算”,計算便需要數據源,數據源要存在記憶體中方便使用,這時就要用到變數,比如把某人嗎名字,年齡等信息存在記憶體中,就需要設置“變數名=值”,例如 之後需要取用的時候,直接調用變數名 1.1變數的定義規則 1. 變數名 ...
  • if語句 條件判斷使用th:if,它會判斷表達式是否成立,表達式的結果支持boolean、number、character、String及其他類型。 滿足下麵情況下,if語句成立: (1) 表達式的結果是數字且不是0 (2) 表達式的結果是字元串且不是false、off、no、0 (3) ... ...
  • 占位符 %s 字元串 %d 整型 %f 浮點型 判斷變數名是不是數字 if 變數名.isdigit(): for...else 和 while...else 當for迴圈與while迴圈正常退出時,則執行else里的語句,非正常退出時(比如break),則不執行else里的語句 列表 格式 列表名 ...
  • 2019-10-17-21:18:33 方法 定義格式: public static void 方法名稱() { 方法體 } 完整格式: 修飾符 返回值類型 方法名稱(參數類型 參數名稱,...){ 方法體 return 返回值; } 修飾符:現階段的固定寫法,public. static 返回值類 ...
  • PHP-FPM的錯誤日誌建議打開,這樣可以看到PHP的錯誤信息:一般是這個配置路徑 /etc/php/7.3/fpm/pool.d/www.conf,日誌目錄如果需要自己建立PHP目錄,一定要把許可權賦給www-data用戶,否則沒有創建目錄的許可權,就無法記錄日誌chown www-data:www- ...
  • 本文源碼: "GitHub·點這裡" || "GitEE·點這裡" 一、解釋器模式 1、基礎概念 解釋器模式是對象的行為模式。給定一個語言之後,解釋器模式可以定義出其文法的一種表示,並同時提供一個解釋器。客戶端可以使用這個解釋器來解釋這個語言中的表達式。 2、模式圖解 3、核心角色 (1)、抽象表達 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...