国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

用Python幫你上馬,哪里無(wú)碼打哪里

waltr / 1388人閱讀

摘要:不同尺寸的圖像,要達(dá)到最佳的像素化的顯示效果,所需要設(shè)置的單位像素塊的大小也是不同的,實(shí)踐出真知。我們需要圖像的指定一個(gè)處理范圍,并對(duì)該范圍內(nèi)的每一個(gè)坐標(biāo)像素點(diǎn)進(jìn)行像素化的處理。公眾號(hào)專欄后臺(tái)回復(fù)馬賽克,獲取本文所涉及的完整代碼。

目錄
0 引言
1 環(huán)境
2 需求分析
3 代碼實(shí)現(xiàn)
4 代碼全景展示
5 后記

0 引言

所謂的像素圖,就是對(duì)圖像做一個(gè)顆粒化的效果,使其產(chǎn)生一種妙不可言的朦朧感。費(fèi)話不多說(shuō),先來(lái)看一張效果圖。


▲效果圖

▲原圖

怎么樣,效果還不錯(cuò)吧?現(xiàn)在,我們用Python來(lái)實(shí)現(xiàn)這種像素化的效果。

1 環(huán)境

操作系統(tǒng):Windows

Python版本:3.7.3

2 需求分析

一個(gè)最簡(jiǎn)單的實(shí)現(xiàn)思路,在打開圖片后,把圖片分割成一些像素塊,再對(duì)這些像素塊中的圖像信息進(jìn)行處理(修改圖像中的RGB值)即可。

這里我們使用Numpy庫(kù)和PIL庫(kù)來(lái)實(shí)現(xiàn)這個(gè)需求,后者用來(lái)圖像的讀取與保存,涉及到的所有圖像處理動(dòng)作均借助Numpy來(lái)實(shí)現(xiàn)。

有關(guān)NumPy模塊、PIL模塊的介紹,可參考如下。

NumPy(Numerical Python) 是 Python 語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù)。

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

這兩個(gè)模塊非Python內(nèi)置,都屬于第三方模塊,可直接采用如下方式進(jìn)行安裝

pip install numpy
pip install Pillow

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

3 代碼實(shí)現(xiàn)

首先導(dǎo)入我們要用到的模塊

import numpy as np
from PIL import Image

接下來(lái),我們要處理圖片,首先得打開一張圖片,如下

data = Image.open("P:PersonalLuoShen.xpg")

然后把圖像轉(zhuǎn)換化Numpy數(shù)組進(jìn)行下一步的處理

im1 = np.array(data)

這里處理的核心思想,也很簡(jiǎn)單,主要通過(guò)中間值的RGB,對(duì)所選范圍塊的RGB進(jìn)行重新賦值。

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

這里的x、y是分別指的我們圖像的橫向、縱向像素點(diǎn)的坐標(biāo)值、而pixel指的是我們要以多大的像素塊,來(lái)處理這張圖像,我們?cè)O(shè)置的單位像素塊(Pixel數(shù)值)越小,生成的像素圖越精確。

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

我們需要圖像的指定一個(gè)處理范圍,并對(duì)該范圍內(nèi)的每一個(gè)坐標(biāo)(像素)點(diǎn)進(jìn)行像素化的處理。

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

在處理完成之后,我們?cè)侔袾umpy數(shù)組轉(zhuǎn)換回圖像。

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: 處理的起始坐標(biāo)(像素)點(diǎn),元組形式      
    :param End_coordinate: 處理的終止坐標(biāo)(像素)點(diǎn),元組形式        
    :return:        
    通過(guò)中間值的RGB,對(duì)所選范圍塊的RGB進(jìn)行重新賦值,設(shè)置的單位像素塊(Pixel數(shù)值)越小,生成的像素圖越精確
    """
    # 讀取圖片,并由 PIL image 轉(zhuǎn)換為 NumPy array
    im1 = np.array(Image.open("P:PersonalLuoShen.jpg"))


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

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


if __name__ == "__main__":      
    # 設(shè)置好要處理的像素范圍,并以多大的像素塊來(lái)生成最終效果圖
    to_pixelBlock(10, (0, 0), (1280, 800)
5 后記

本文使用了PIL加上Numpy的配合,短短幾行代碼實(shí)現(xiàn)了圖像像素化的處理。當(dāng)然這只是一種簡(jiǎn)單地實(shí)現(xiàn),要想實(shí)現(xiàn)更豐富的處理效果,還可以借助CV2來(lái)實(shí)現(xiàn)。

好了,以上就是本篇全部?jī)?nèi)容。

公眾號(hào)「Python專欄」后臺(tái)回復(fù):「馬賽克」,獲取本文所涉及的完整代碼。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44096.html

相關(guān)文章

  • 病有所查,UCloud助力無(wú)碼科技發(fā)動(dòng)云上醫(yī)療數(shù)字引擎

    摘要:除此之外,無(wú)碼科技還推出抽獎(jiǎng)助手和等流量和工具產(chǎn)品。目前無(wú)碼科技旗下用戶數(shù)過(guò)億,由醫(yī)療用戶和非醫(yī)療用戶構(gòu)成。無(wú)碼科技產(chǎn)品負(fù)責(zé)人邱岳介紹。此外,在高性能的支持下,無(wú)碼科技在人工智能領(lǐng)域的技術(shù)得以不斷推進(jìn)。無(wú)癥狀新冠疫情要如何判斷?家附近哪里有疫苗接種點(diǎn)接種疫苗有什么注意事項(xiàng)……新冠疫情爆發(fā)后,醫(yī)療小程序就診問(wèn)問(wèn)上,關(guān)于新冠疫情的搜索量出現(xiàn)明顯增長(zhǎng)。就診問(wèn)問(wèn)是無(wú)碼科技旗下專注醫(yī)療健康搜索的小程序...

    Tecode 評(píng)論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • Python基礎(chǔ)知識(shí)之文件的讀取操作

    摘要:如果該文件已存在,文件的初始指針在文件的結(jié)尾。文件中只有一句話十步殺一人,千里不留行。關(guān)閉文件如果用來(lái)打開文件的話就不用管關(guān)閉文件的操作了,因?yàn)橐呀?jīng)幫你完成了這一步,否則必須在處理文件之后加上關(guān)閉文件的操作 讀取文件的操作步驟 有一道腦筋急轉(zhuǎn)彎,問(wèn)把大象裝進(jìn)冰箱的步驟,答案很簡(jiǎn)單,打開冰箱、把大象推進(jìn)去、關(guān)閉冰箱。這就是一個(gè)處理問(wèn)題的思路,我們對(duì)文件的操作和這個(gè)一樣,第一步:打開文件;...

    zeyu 評(píng)論0 收藏0
  • 業(yè)務(wù)開發(fā)中的調(diào)試方法總結(jié)

    摘要:業(yè)務(wù)開發(fā)中的調(diào)試方法總結(jié)這段時(shí)間,接觸了單元測(cè)試,同時(shí)業(yè)務(wù)中遇到了一些需要排錯(cuò)調(diào)試的情況,就把自己的經(jīng)驗(yàn)做個(gè)小結(jié)。但是如果你的業(yè)務(wù)經(jīng)常變化,但是變化的部分并不會(huì)影響單元測(cè)試,那這種情況下的單元測(cè)試性價(jià)比就很高。 業(yè)務(wù)開發(fā)中的調(diào)試方法總結(jié) 這段時(shí)間,接觸了單元測(cè)試,同時(shí)業(yè)務(wù)中遇到了一些需要排錯(cuò)調(diào)試的情況,就把自己的經(jīng)驗(yàn)做個(gè)小結(jié)。 3種調(diào)試方法 狼叔說(shuō),常見的三種調(diào)試的境界 初級(jí): 打l...

    KaltZK 評(píng)論0 收藏0
  • 筆記|軟件調(diào)試的技巧

    摘要:在軟件世界里,觀察意味著設(shè)置斷點(diǎn)添加調(diào)試語(yǔ)句監(jiān)視程序值以及檢查內(nèi)存在醫(yī)學(xué)領(lǐng)域,需要測(cè)試血樣和進(jìn)行光透視。福爾摩斯,最后一案如果你不修復(fù),它不會(huì)自動(dòng)消失。修復(fù)解決問(wèn)題的能力,是軟件工程師的核心競(jìng)爭(zhēng)力之一。 這篇文章是《調(diào)試九法:軟硬件錯(cuò)誤的排查之道》的閱讀筆記。這本書的主旨,是介紹如何修復(fù)bug:找出bug發(fā)生的原因、并給出修復(fù)方案。 調(diào)試bug的九個(gè)規(guī)則列舉如下,建議將這個(gè)清單打印出來(lái)...

    DirtyMind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<