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

用Python PIL實現(xiàn)幾個簡單的圖片特效

 更新時間:2019年01月18日 16:11:04   作者:billlbilll  
這篇文章主要介紹了用Python PIL實現(xiàn)幾個簡單的圖片特效,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

導(dǎo)入 numpy 、PIL

numpy用來做矩陣運算,PIL用來讀取圖片。

import numpy as np
from PIL import Image

讀取圖片,然后轉(zhuǎn)換成RGB模式存在矩陣?yán)?/strong>

im = Image.open(imagename).convert('RGB')
arr = np.array(im)

查看arr的shape,可以看到arr是個3維的數(shù)組,數(shù)組大小等于 長*寬*3

In [566]: arr.shape
Out[566]: (313, 450, 3)

每個像素有3個數(shù)字表示,分別對應(yīng)(R,G,B)

IN [567]: arr[0][0]
Out[567]: array([6, 4, 9], dtype=uint8)

原始圖片

彩色轉(zhuǎn)黑白

把像素的R,G,B三個通道數(shù)值都置為r*0.299+g*0.587+b*0.114

def blackWithe(imagename):
  # r,g,b = r*0.299+g*0.587+b*0.114
  im = np.asarray(Image.open(imagename).convert('RGB'))
  trans = np.array([[0.299,0.587,0.114],[0.299,0.587,0.114],[0.299,0.587,0.114]]).transpose()
  im = np.dot(im,trans)
  return Image.fromarray(np.array(im).astype('uint8'))

流年

把R通道的數(shù)值開平方,然后乘以一個參數(shù)

def fleeting(imagename,params=12):
  im = np.asarray(Image.open(imagename).convert('RGB'))
  im1 = np.sqrt(im*[1.0,0.0,0.0])*params
  im2 = im*[0.0,1.0,1.0]
  im = im1+im2
  return Image.fromarray(np.array(im).astype('uint8')) 

舊電影

把像素的R,G,B三個通道數(shù)值,3個通道的分別乘以3個參數(shù)后求和,最后把超過255的值置為255

def oldFilm(imagename):
  im = np.asarray(Image.open(imagename).convert('RGB'))
  # r=r*0.393+g*0.769+b*0.189 g=r*0.349+g*0.686+b*0.168 b=r*0.272+g*0.534b*0.131
  trans = np.array([[0.393,0.769,0.189],[0.349,0.686,0.168],[0.272,0.534,0.131]]).transpose()
  # clip 超過255的顏色置為255
  im = np.dot(im,trans).clip(max=255)        
  return Image.fromarray(np.array(im).astype('uint8')) 

反色

這個最簡單了,用255減去每個通道的原來的數(shù)值

def reverse(imagename):
  im = 255 - np.asarray(Image.open(imagename).convert('RGB'))
  return Image.fromarray(np.array(im).astype('uint8')) 

PS:示例

from PIL import Image, ImageFilter

# 打開一個jpg圖像文件,注意是當(dāng)前路徑:
im = Image.open('Penguins.jpg')



# 模糊
im2 = im.filter(ImageFilter.BLUR)
# 模糊可設(shè)置模糊的程度
im22 = im.filter(ImageFilter.BoxBlur(200))
# 輪廓濾波
im3 = im.filter(ImageFilter.CONTOUR)
# 邊緣增強濾波(銳化)
im4 = im.filter(ImageFilter.EDGE_ENHANCE)
# 浮雕濾波
im5 = im.filter(ImageFilter.EMBOSS)
# 尋找邊緣信息的濾波
im6 = im.filter(ImageFilter.FIND_EDGES)

im2.save('BLUR.jpg', 'jpeg')
im3.save('CONTOUR.jpg', 'jpeg')
im4.save('EDGE_ENHANCE.jpg', 'jpeg')
im5.save('EMBOSS.jpg', 'jpeg')
im6.save('FIND_EDGES.jpg', 'jpeg')
im22.save('BoxBlur(200).jpg', 'jpeg')

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

相關(guān)文章

  • python jinjia2的項目使用

    python jinjia2的項目使用

    本文主要介紹了python jinjia2的項目使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python 中Operator模塊的使用

    Python 中Operator模塊的使用

    這篇文章主要介紹了Python 中Operator模塊的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • python類名和類方法cls修改類變量的值

    python類名和類方法cls修改類變量的值

    這篇文章主要介紹了python類名和類方法cls修改類變量的值,通過類對象是無法修改類變量的值的,本質(zhì)其實是給類對象新添加?name?和?age?變量,下文更多的相關(guān)介紹需要的小伙伴可任意參考一下
    2022-04-04
  • Python ftp上傳文件

    Python ftp上傳文件

    這篇文章主要介紹了Python ftp上傳文件的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Python應(yīng)用案例之利用opencv實現(xiàn)圖像匹配

    Python應(yīng)用案例之利用opencv實現(xiàn)圖像匹配

    OpenCV 是一個的跨平臺計算機視覺庫,可以運行在 Linux、Windows 和 Mac OS 操作系統(tǒng)上,這篇文章主要給大家介紹了關(guān)于Python應(yīng)用案例之利用opencv實現(xiàn)圖像匹配的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • Python樹的序列化與反序列化的實現(xiàn)

    Python樹的序列化與反序列化的實現(xiàn)

    在本文中,我們將深入討論如何實現(xiàn)樹的序列化與反序列化算法,提供Python代碼實現(xiàn),并詳細(xì)說明算法的原理和步驟,感興趣的可以了解一下
    2023-11-11
  • Python requests請求超時的解決方案

    Python requests請求超時的解決方案

    在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)爬取過程中,網(wǎng)絡(luò)請求超時是一個令人頭疼的問題,尤其在Python中,我們常常需要應(yīng)對各種網(wǎng)絡(luò)爬蟲、API調(diào)用或其他網(wǎng)絡(luò)操作,而網(wǎng)絡(luò)請求超時的原因千奇百怪,在本篇文章中,我們將深入探討Python requests請求超時的解決方案,需要的朋友可以參考下
    2024-12-12
  • pyqt5的QWebEngineView 使用模板的方法

    pyqt5的QWebEngineView 使用模板的方法

    這篇文章主要介紹了pyqt5的QWebEngineView 使用模板的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python中特殊函數(shù)集錦

    Python中特殊函數(shù)集錦

    這篇文章主要介紹了Python中特殊函數(shù),主要介紹一下四個函數(shù):1 過濾函數(shù)filter 2 映射和歸并函數(shù)map/reduce 3 裝飾器@ 4 匿名函數(shù)lamda,需要的朋友可以參考下
    2015-07-07
  • python多線程中獲取函數(shù)返回值的三種方法

    python多線程中獲取函數(shù)返回值的三種方法

    本文主要介紹了python多線程中獲取函數(shù)返回值的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

通化县| 乡城县| 工布江达县| 道真| 华安县| 阳城县| 邵阳市| 唐海县| 大庆市| 资兴市| 攀枝花市| 巴东县| 商城县| 恩施市| 新化县| 天门市| 吉安县| 内黄县| 嵊泗县| 张北县| 咸阳市| 崇阳县| 南安市| 伊金霍洛旗| 隆德县| 鄄城县| 石台县| 依安县| 九龙城区| 威远县| 晋州市| 梓潼县| 浮山县| 广元市| 肥西县| 惠州市| 丹凤县| 江阴市| 汝城县| 清镇市| 千阳县|