欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

用Python幫你上馬,哪里無碼打哪里

系統 1686 0

目錄
0 引言
1 環境
2 需求分析
3 代碼實現
4 代碼全景展示
5 后記

0 引言

所謂的像素圖,就是對圖像做一個顆粒化的效果,使其產生一種妙不可言的朦朧感。費話不多說,先來看一張效果圖。

用Python幫你上馬,哪里無碼打哪里_第1張圖片

▲效果圖

用Python幫你上馬,哪里無碼打哪里_第2張圖片

▲原圖

怎么樣,效果還不錯吧?現在,我們用Python來實現這種像素化的效果。

1 環境

操作系統:Windows

Python版本:3.7.3

2 需求分析

一個最簡單的實現思路,在打開圖片后,把圖片分割成一些像素塊,再對這些像素塊中的圖像信息進行處理(修改圖像中的RGB值)即可。

這里我們使用Numpy庫和PIL庫來實現這個需求,后者用來圖像的讀取與保存,涉及到的所有圖像處理動作均借助Numpy來實現。

有關NumPy模塊、PIL模塊的介紹,可參考如下。

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

PIL(Python Imaging Library)是Python常用的圖像處理庫,而Pillow是PIL的一個友好Fork,提供了了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉換以及基本的圖像處理操作等。

這兩個模塊非Python內置,都屬于第三方模塊,可直接采用如下方式進行安裝

                  
                    pip install numpy
pip install Pillow
                  
                

注意,要想使用PIL模塊,是需要直接install Pillow模塊的。

3 代碼實現

首先導入我們要用到的模塊

                  
                    import numpy as np
from PIL import Image
                  
                

接下來,我們要處理圖片,首先得打開一張圖片,如下

                  
                    data = Image.open("P:\\Personal\\LuoShen.xpg")
                  
                

然后把圖像轉換化Numpy數組進行下一步的處理

                  
                    im1 = np.array(data)
                  
                

這里處理的核心思想,也很簡單,主要通過中間值的RGB,對所選范圍塊的RGB進行重新賦值。

                  
                    im1[y:y + pixel, x:x + pixel] = im1[y + (pixel // 2)][x + (pixel // 2)]
                  
                

這里的x、y是分別指的我們圖像的橫向、縱向像素點的坐標值、而pixel指的是我們要以多大的像素塊,來處理這張圖像,我們設置的單位像素塊(Pixel數值)越小,生成的像素圖越精確。

當然了,若單位像素塊設置的太小,生成圖像就看不出效果了,至于多大的數值合適,需要自行嘗試。不同尺寸的圖像,要達到最佳的像素化的顯示效果,所需要設置的單位像素塊的大小也是不同的,實踐出真知。

我們需要圖像的指定一個處理范圍,并對該范圍內的每一個坐標(像素)點進行像素化的處理。

                  
                    for y in range(Start_coordinate[1], End_coordinate[1], pixel):
    for x in range(Start_coordinate[0], End_coordinate[0], pixel):
        pass
                  
                

在處理完成之后,我們再把Numpy數組轉換回圖像。

                  
                    im2 = Image.fromarray(im1.astype(np.uint8))
                  
                

最后展示出處理后的圖像

                  
                    im2.show()
                  
                

4 代碼全景展示

                  
                    import numpy as np
from PIL import Image

def to_pixelBlock(pixel, Start_coordinate, End_coordinate):     
    '''     
    :param pixel: 單位像素塊的元素大小        
    :param Start_coordinate: 處理的起始坐標(像素)點,元組形式      
    :param End_coordinate: 處理的終止坐標(像素)點,元組形式        
    :return:        
    通過中間值的RGB,對所選范圍塊的RGB進行重新賦值,設置的單位像素塊(Pixel數值)越小,生成的像素圖越精確
    '''
    # 讀取圖片,并由 PIL image 轉換為 NumPy array
    im1 = np.array(Image.open("P:\\Personal\\LuoShen.jpg"))


    # 遍歷所要處理范圍內的所有坐標(像素)點
    for y in range(Start_coordinate[1], End_coordinate[1], pixel):
        for x in range(Start_coordinate[0], End_coordinate[0], pixel):
            # 通過中間值的RGB,對所選范圍塊的RGB進行重新賦值
            im1[y:y + pixel, x:x + pixel] = im1[y + (pixel // 2)][x + (pixel // 2)]

    # 將NumPy array 轉換為 PIL image        
    im2 = Image.fromarray(im1.astype(np.uint8))
    # 展示處理后的圖像
    im2.show()


if __name__ == '__main__':      
    # 設置好要處理的像素范圍,并以多大的像素塊來生成最終效果圖
    to_pixelBlock(10, (0, 0), (1280, 800)
                  
                

5 后記

本文使用了PIL加上Numpy的配合,短短幾行代碼實現了圖像像素化的處理。當然這只是一種簡單地實現,要想實現更豐富的處理效果,還可以借助CV2來實現。

好了,以上就是本篇全部內容。

公眾號「 Python專欄 」后臺回復:「 馬賽克 」,獲取本文所涉及的完整代碼。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美日韩精品一区二区在线线 | 青青草一区 | 欧美视频一区二区三区 | 亚洲精品无码成人A片在线虐 | 五月婷婷丁香在线 | 一区二区欧美视频 | 午夜一区二区三区 | 日韩中文有码高清 | v视界成人影院在线视频 | 日本特黄特色大片免费视频 | 成人国产欧美精品一区二区 | 午夜精品在线播放 | 最新中文字幕日本 | 午夜羞羞影院 | 国产成人精品高清在线观看99 | 狠狠色狠狠色综合日日92 | 久草热在线视频 | 亚洲国产日韩欧美在线 | 国产精品国产三级国产aⅴ无密码 | 久久精品这里是免费国产 | 国产精品第一页在线 | 国产一区在线免费观看 | 欧美成人福利 | 欧美精品久久久久久久久老牛影院 | 国产精品久久影院 | 看黄在线 | 欧美人人干 | 久草免费网站 | 欧美一区视频 | 国产精品久久久久无码av | 国产高清视频a在线大全 | 亚洲国产一区二区三区四区 | 三级精品 | 精品欧美乱码久久久久久 | 欧美一级夜夜爽 | 免费自拍偷拍 | 99热在线免费观看 | 狼伊千合综网中文 | 国产免费一区二区三区免费视频 | 国产品久久| 午夜视频在线免费观看 |