日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 设置图片x轴带单位_用Python帮你上马,哪里无码打哪里

發布時間:2024/10/12 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 设置图片x轴带单位_用Python帮你上马,哪里无码打哪里 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來自公眾號:Python專欄

目錄

0 引言

1 環境

2 需求分析

3 代碼實現

4 代碼全景展示

5 后記

0 引言

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

▲效果圖

▲原圖

怎么樣,效果還不錯吧?現在,我們用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來實現。

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

本文所涉及的完整代碼?

GitHub:https://github.com/MiracleYoung/You-are-Pythonista/tree/master/PythonExercise/Tool/Convert_IMG_to_Pixel/


●編號699,輸入編號直達本文

●輸入m獲取文章目錄

相關推薦↓↓↓

人工智能與大數據技術

總結

以上是生活随笔為你收集整理的python 设置图片x轴带单位_用Python帮你上马,哪里无码打哪里的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。