python改變圖片亮度,python調整圖像大小

本文目錄一覽:

python處理圖片數據?

生成一張純色的圖片

先設置圖片的顏色,接着利用Image模塊的new方法新生成一張圖片,png格式的圖片需要設置成rgba,類似的還有rgb,L(灰度圖等),尺寸設定為640,480,這個可以根據自己的情況設定,顏色同樣如此。

批量生成圖片

上面生成了一張圖片,那要生成十張圖片呢,這種步驟一樣,只是顏色改變的,利用循環就可以解決。首先創建一個顏色列表,把要生成的圖片顏色放進去。接着循環獲取不同的顏色,保存的時候利用字符串拼接的方法改變圖片的名字。

本地生成的圖片

封裝成函數

前面的方法已經可以批量生成圖片了,為了通用性強一點,我們可以封裝成函數,把哪些可以改變的參數單獨抽離出來。尺寸也同樣,使用的時候,可以根據自己的需要定義顏色列表和尺寸。當然還有加一些提示用語和報錯兼容性,這裡就不講了。

本地生成的圖片

如何通過python獲得圖像的亮度值

import cv2

img = cv2.imread(‘pic.jpg’,0)#以灰度圖加載圖片

print img(x,y) #打印(x,y)處的亮度值

python:PIL圖像處理

PIL (Python Imaging Library)

Python圖像處理庫,該庫支持多種文件格式,提供強大的圖像處理功能。

PIL中最重要的類是Image類,該類在Image模塊中定義。

從文件加載圖像:

如果成功,這個函數返回一個Image對象。現在你可以使用該對象的屬性來探索文件的內容。

format 屬性指定了圖像文件的格式,如果圖像不是從文件中加載的則為 None 。

size 屬性是一個2個元素的元組,包含圖像寬度和高度(像素)。

mode 屬性定義了像素格式,常用的像素格式為:“L” (luminance) – 灰度圖, “RGB” , “CMYK”。

如果文件打開失敗, 將拋出IOError異常。

一旦你擁有一個Image類的實例,你就可以用該類定義的方法操作圖像。比如:顯示

( show() 的標準實現不是很有效率,因為它將圖像保存到一個臨時文件,然後調用外部工具(比如系統的默認圖片查看軟件)顯示圖像。該函數將是一個非常方便的調試和測試工具。)

接下來的部分展示了該庫提供的不同功能。

PIL支持多種圖像格式。從磁盤中讀取文件,只需使用 Image 模塊中的 open 函數。不需要提供文件的圖像格式。PIL庫將根據文件內容自動檢測。

如果要保存到文件,使用 Image 模塊中的 save 函數。當保存文件時,文件名很重要,除非指定格式,否則PIL庫將根據文件的擴展名來決定使用哪種格式保存。

** 轉換文件到JPEG **

save 函數的第二個參數可以指定使用的文件格式。如果文件名中使用了一個非標準的擴展名,則必須通過第二個參數來指定文件格式。

** 創建JPEG縮略圖 **

需要注意的是,PIL只有在需要的時候才加載像素數據。當你打開一個文件時,PIL只是讀取文件頭獲得文件格式、圖像模式、圖像大小等屬性,而像素數據只有在需要的時候才會加載。

這意味着打開一個圖像文件是一個非常快的操作,不會受文件大小和壓縮算法類型的影響。

** 獲得圖像信息 **

Image 類提供了某些方法,可以操作圖像的子區域。提取圖像的某個子區域,使用 crop() 函數。

** 複製圖像的子區域 **

定義區域使用一個包含4個元素的元組,(left, upper, right, lower)。坐標原點位於左上角。上面的例子提取的子區域包含300×300個像素。

該區域可以做接下來的處理然後再粘貼回去。

** 處理子區域然後粘貼回去 **

當往回粘貼時,區域的大小必須和參數匹配。另外區域不能超出圖像的邊界。然而原圖像和區域的顏色模式無需匹配。區域會自動轉換。

** 滾動圖像 **

paste() 函數有個可選參數,接受一個掩碼圖像。掩碼中255表示指定位置為不透明,0表示粘貼的圖像完全透明,中間的值表示不同級別的透明度。

PIL允許分別操作多通道圖像的每個通道,比如RGB圖像。 split() 函數創建一個圖像集合,每個圖像包含一個通道。 merge() 函數接受一個顏色模式和一個圖像元組,然後將它們合併為一個新的圖像。接下來的例子交換了一個RGB圖像的三個通道。

** 分離和合併圖像通道 **

對於單通道圖像, split() 函數返回圖像本身。如果想處理各個顏色通道,你可能需要先將圖像轉為RGB模式。

resize() 函數接受一個元組,指定圖像的新大小。

rotate() 函數接受一個角度值,逆時針旋轉。

** 基本幾何變換 **

圖像旋轉90度也可以使用 transpose() 函數。 transpose() 函數也可以水平或垂直翻轉圖像。

** transpose **

transpose() 和 rotate() 函數在性能和結果上沒有區別。

更通用的圖像變換函數為 transform() 。

PIL可以轉換圖像的像素模式。

** 轉換顏色模式 **

PIL庫支持從其他模式轉為“L”或“RGB”模式,其他模式之間轉換,則需要使用一個中間圖像,通常是“RGB”圖像。

ImageFilter 模塊包含多個預定義的圖像增強過濾器用於 filter() 函數。

** 應用過濾器 **

point() 函數用於操作圖像的像素值。該函數通常需要傳入一個函數對象,用於操作圖像的每個像素:

** 應用點操作 **

使用以上技術可以快速地對圖像像素應用任何簡單的表達式。可以結合 point() 函數和 paste 函數修改圖像。

** 處理圖像的各個通道 **

注意用於創建掩碼圖像的語法:

Python計算邏輯表達式採用短路方式,即:如果and運算符左側為false,就不再計算and右側的表達式,而且返回結果是表達式的結果。比如 a and b 如果a為false則返回a,如果a為true則返回b,詳見Python語法。

對於更多高級的圖像增強功能,可以使用 ImageEnhance 模塊中的類。

可以調整圖像對比度、亮度、色彩平衡、銳度等。

** 增強圖像 **

PIL庫包含對圖像序列(動畫格式)的基本支持。支持的序列格式包括 FLI/FLC 、 GIF 和一些實驗性的格式。 TIFF 文件也可以包含多個幀。

當打開一個序列文件時,PIL庫自動加載第一幀。你可以使用 seek() 函數 tell() 函數在不同幀之間移動。

** 讀取序列 **

如例子中展示的,當序列到達結尾時,將拋出EOFError異常。

注意當前版本的庫中多數底層驅動只允許seek到下一幀。如果想回到前面的幀,只能重新打開圖像。

以下迭代器類允許在for語句中循環遍歷序列:

** 一個序列迭代器類 **

PIL庫包含一些函數用於將圖像、文本打印到Postscript打印機。以下是一個簡單的例子。

** 打印到Postscript **

如前所述,可以使用 open() 函數打開圖像文件,通常傳入一個文件名作為參數:

如果打開成功,返回一個Image對象,否則拋出IOError異常。

也可以使用一個file-like object代替文件名(暫可以理解為文件句柄)。該對象必須實現read,seek,tell函數,必須以二進制模式打開。

** 從文件句柄打開圖像 **

如果從字符串數據中讀取圖像,使用StringIO類:

** 從字符串中讀取 **

如果圖像文件內嵌在一個大文件里,比如 tar 文件中。可以使用ContainerIO或TarIO模塊來訪問。

** 從tar文檔中讀取 **

** 該小節不太理解,請參考原文 **

有些解碼器允許當讀取文件時操作圖像。通常用於在創建縮略圖時加速解碼(當速度比質量重要時)和輸出一個灰度圖到激光打印機時。

draft() 函數。

** Reading in draft mode **

輸出類似以下內容:

注意結果圖像可能不會和請求的模式和大小匹配。如果要確保圖像不大於指定的大小,請使用 thumbnail 函數。

Python2.7 教程 PIL

Python 之 使用 PIL 庫做圖像處理

來自

python用PIL如何獲得一張圖片的亮度值

圖像的亮度是指每一個點的亮度,如果比較兩個圖像的亮度的話可能就要計算所有點的亮度平均值,下面是計算某個點的亮度值的程序,僅供參考。

import Image

im=Image.open(“d:/lena.jpg”)

print im.mode #查看圖像的模式

im1=im.convert(“YCbCr”) #轉換圖像的模式到視頻模式

y,cb,cr=im1.getpixel((10,10)) #提取點(10,10)位置的亮度、藍色分量、紅色分量的值。

print y #輸出亮度值

後面兩步循環就可以計算整個圖像的亮度平均值。

怎麼調整照片亮度?

具體如下:

1. 第一步,打開手機中,選擇一個圖片並打開,然後點擊圖片的任意位置,在下方將會跳出菜單欄,點擊菜單欄中的編輯選項。

2.第二步,在下方的編輯工具選項中,點擊調節選項。

3. 第三步,點擊後將會顯示出一個調節面板,在該面板內我們可以對圖片的亮度、對比度和飽和度進行調整。

4. 第四步,我們先選擇飽和度,然後向下或向上進行滑動來調整,飽和度降低時,圖片將變暗。

5. 當我們調高飽和度時,圖片的色彩將會增加,且會更加的靚麗。

6. 第五步,修改對比度,可以增加圖片內容的對比,來突出主體的顯示。

7.第六步,點擊最左側的亮度選項,就可以調整圖片的亮度。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249805.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 17:11
下一篇 2024-12-12 17:11

相關推薦

  • 用Python繪製酷炫圖片

    在本篇文章中,我們將展示如何使用Python繪製酷炫的圖片。 一、安裝Python繪圖庫 在使用Python繪製圖片之前,我們需要先安裝Python繪圖庫。Python有很多繪圖庫…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • 如何實現圖像粘貼到蒙版

    本文將從多個方面介紹圖像粘貼到蒙版的實現方法。 一、創建蒙版 首先,在HTML中創建一個蒙版元素,用於接收要粘貼的圖片。 <div id=”mask” style=”widt…

    編程 2025-04-29
  • 使用axios獲取返回圖片

    使用axios獲取返回圖片是Web開發中很常見的需求。本文將介紹如何使用axios獲取返回圖片,並從多個方面進行詳細闡述。 一、安裝axios 使用axios獲取返回圖片前,首先需…

    編程 2025-04-29
  • Python 圖片轉表格

    本文將詳細介紹如何使用Python將圖片轉為表格。大家平時在處理一些資料的時候難免會遇到圖片轉表格的需求。比如從PDF文檔中提取表格等場景。當然,這個功能也可以通過手動複製、粘貼,…

    編程 2025-04-29
  • Python緩存圖片的處理方式

    本文將從多個方面詳細闡述Python緩存圖片的處理方式,包括緩存原理、緩存框架、緩存策略、緩存更新和緩存清除等方面。 一、緩存原理 緩存是一種提高應用程序性能的技術,在網絡應用中流…

    編程 2025-04-29
  • Python如何抓取圖片數據

    Python是一門強大的編程語言,能夠輕鬆地進行各種數據抓取與處理。抓取圖片數據是一個非常常見的需求。在這篇文章中,我們將從多個方面介紹Python如何抓取圖片數據。 一、使用ur…

    編程 2025-04-29
  • Python圖像黑白反轉用法介紹

    本文將從多個方面詳細闡述Python圖像黑白反轉的方法和技巧。 一、Pillow模塊介紹 Pillow是Python的一個圖像處理模塊,可以進行圖片的裁剪、旋轉、縮放等操作。使用P…

    編程 2025-04-28
  • Akka 設置郵箱大小的方法和注意事項

    為了保障系統的穩定性和可靠性,Akka 允許用戶設置郵箱大小。本文將介紹如何在 Akka 中設置郵箱大小,並且提供一些注意事項,以幫助讀者解決可能遇到的問題。 一、設置郵箱大小 A…

    編程 2025-04-28
  • Python利用Image加圖片的方法

    在Python中,利用Image庫可以快速處理圖片,並加入需要的圖片,本文將從多個方面詳細闡述這個操作。 一、Image庫的安裝和基礎操作 首先,我們需要在Python中安裝Ima…

    編程 2025-04-28

發表回復

登錄後才能評論