欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)灰度圖

 更新時間:2022年08月05日 10:55:17   作者:名劍求瑕  
這篇文章主要為大家詳細介紹了python實現(xiàn)灰度圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python實現(xiàn)灰度圖的具體代碼,供大家參考,具體內(nèi)容如下

任務描述

背景

真彩色圖像和灰度圖像是數(shù)字圖像的兩種常見類型,如下圖所示,左圖是真彩色圖像,右圖是灰度圖像。

在真彩色圖像中,像素顏色是 RGB 顏色,每個顏色包含 R、G、B 三個顏色分量。而在灰度圖像中,像素顏色只有一個分量,稱為灰度值,其取值是 [0,255] 之間的整數(shù),灰度值越小,灰度越暗(越黑),反之越亮(越白)。

任務

本關(guān)任務是補全程序,使程序能將一幅真彩色圖像轉(zhuǎn)換成灰度圖像。說明如下:
1)求得的灰度值需要轉(zhuǎn)換成整數(shù),請使用round函數(shù)取整,如round(3.7)是將3.7四舍五入為整數(shù)4;
2)本關(guān)程序框架與上關(guān)基本相同。

相關(guān)知識

思路

真彩色圖像與灰度圖像采用的顏色模式不一樣,前者使用 RGB 顏色,有三個顏色分量,而后者使用灰度值,只有一個顏色分量,所以不能像上關(guān)一樣直接對原始圖像的像素進行修改。
解決方法是先新建一個與真彩色圖像分辨率相同的純色灰度圖像,然后依次取出真彩色圖像中每個像素的 RGB 顏色,算出對應的灰度值,再將此灰度值填入新建灰度圖像的對應位置。

示例程序

示例程序見下:

from PIL import Image
img = Image.new('L', (100, 100)) ?#新建一個3×3的純黑色灰度圖像
gray = img.getpixel((50,50)) ? ? ?#取出某個像素的顏色,即灰度值
print('這是一個灰度值:', gray) ? #灰度值只包含一個整數(shù)
for x in range(100):
? ? for y in range(100):
? ? ? ? img.putpixel((x,y), 100)#將所有像素的灰度值設置為100
img.save('src/step2/student/step2_2.jpg')

可將此程序拷入右側(cè)編輯器運行。

編程要求

在 Begin-End 區(qū)間補全代碼,具體要求見上。

測試說明

系統(tǒng)會檢查程序生成的 step2_2.jpg 文件,若正確則打?。?/p>

你的圖像與正確答案相同!

開始你的任務吧,祝你成功!

from PIL import Image


# 將一個RGB顏色轉(zhuǎn)換成灰度值,結(jié)果保留整數(shù)
def RGBtoGray(r, g, b):
? ? ########## Begin ##########
? ? gray = round(r*0.299 + g*0.587 + b*0.114)
? ? ########## End ##########
? ? return gray
# 將真彩色圖像轉(zhuǎn)換成灰度圖
# 真彩色和灰度圖的文件路徑分別為path1和path2
def toGrayImage(path1, path2):
? ? img1 = Image.open(path1) ?# 真彩色圖像,像素中是RGB顏色
? ? w, h = img1.size
? ? img2 = Image.new('L', (w, h)) ?# 新建一個灰度圖像,像素中是灰度值
? ? ########## Begin ##########
? ? # 此部分功能:依次取出img1中每個像素的RGB顏色,轉(zhuǎn)換成灰度值,再放到img2的對應位置
? ? for x in range(w):
? ? ? ? for y in range(h):
? ? ? ? ? ? r, g, b = img1.getpixel((x, y)) ?# 取出顏色
? ? ? ? ? ? gray = RGBtoGray(r, g, b) # 轉(zhuǎn)成灰度值
? ? ? ? ? ? img2.putpixel((x, y), gray) ?# 放回像素

? ? ########## End ##########
? ? img2.save(path2)


path1 = 'step1.jpg' ?# 真彩色圖像
path2 = 'step2_2.jpg' ?# 灰度圖像
toGrayImage(path1, path2)

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python下載網(wǎng)絡小說實例代碼

    Python下載網(wǎng)絡小說實例代碼

    這篇文章主要介紹了Python下載網(wǎng)絡小說實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Python2/3中urllib庫的一些常見用法

    Python2/3中urllib庫的一些常見用法

    Urllib庫是Python中的一個功能強大、用于操作URL,并在做爬蟲的時候經(jīng)常要用到的庫。下面這篇文章主要給大家介紹了關(guān)于Python2/3中urllib庫的一些常見用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-12-12
  • PyTorch里面的torch.nn.Parameter()詳解

    PyTorch里面的torch.nn.Parameter()詳解

    今天小編就為大家分享一篇PyTorch里面的torch.nn.Parameter()詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 利用pipenv和pyenv管理多個相互獨立的Python虛擬開發(fā)環(huán)境

    利用pipenv和pyenv管理多個相互獨立的Python虛擬開發(fā)環(huán)境

    這篇文章主要介紹了利用pipenv和pyenv管理多個相互獨立的Python虛擬開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • python變量的作用域是什么

    python變量的作用域是什么

    在本篇內(nèi)容里小編給大家分享了關(guān)于python變量的作用域的實例及用法,有興趣的朋友們可以學習下。
    2020-05-05
  • 將Python代碼打包成.exe可執(zhí)行文件的完整步驟

    將Python代碼打包成.exe可執(zhí)行文件的完整步驟

    這篇文章主要給大家介紹了關(guān)于如何將Python代碼打包成.exe可執(zhí)行文件的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Python正則表達式如何進行字符串替換實例

    Python正則表達式如何進行字符串替換實例

    Python正則表達式在使用中會經(jīng)常應用到字符串替換的代碼。這篇文章主要介紹了Python正則表達式如何進行字符串替換,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • Python如何識別銀行卡卡號?

    Python如何識別銀行卡卡號?

    今天給大家?guī)淼氖怯嘘P(guān)Python的相關(guān)知識,文章圍繞著Python如何識別銀行卡卡號展開,文中有非常詳細的代碼示例及介紹,需要的朋友可以參考下
    2021-06-06
  • 使用Pytorch+PyG實現(xiàn)MLP的詳細過程

    使用Pytorch+PyG實現(xiàn)MLP的詳細過程

    圖神經(jīng)網(wǎng)絡是最近 AI 領(lǐng)域最熱門的方向之一,下面這篇文章主要給大家介紹了關(guān)于使用Pytorch+PyG實現(xiàn)MLP的詳細過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • 詳解python中mongoengine庫用法

    詳解python中mongoengine庫用法

    這篇文章主要介紹了python中mongoengine庫用法,主要包括MongoDB的安裝與連接過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07

最新評論