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

python圖像處理基本操作總結(jié)(PIL庫、Matplotlib及Numpy)

 更新時間:2021年06月08日 09:41:55   作者:全部梭哈一夜暴富  
這篇文章主要給大家介紹了關(guān)于python圖像處理基本操作的相關(guān)資料,主要利用的是PIL庫、Matplotlib及Numpy等處理方法,需要的朋友可以參考下

一、PIL庫對圖像的基本操作

1、讀取圖片

PIL網(wǎng)上有很多介紹,這里不再講解。直接操作,讀取一張圖片,將其轉(zhuǎn)換為灰度圖像,并打印出來。

from  PIL  import Image
import matplotlib.pyplot as plt
pil_im = Image.open("empire.jpeg")
pil_image = pil_im.convert("L")
plt.gray()
plt.imshow(pil_image)
plt.show()

輸出如下所示:

2、轉(zhuǎn)換圖片格式

PIL可以將圖像保存為多種格式,下面將PNG格式文件保存為JPG格式:

from PIL import Image
import glob
import os
filelist = glob.glob("E:/pythonProject1/filelist/*.png")
for infile in filelist:
    outfile = os.path.splitext(infile)[0]+'.jpg'
 
    if infile  != outfile:
        try:
            Image.open(infile).save(outfile)
        except IOError:
            print("cannot convert", infile)

輸出結(jié)果如下所示:

3、輸出文件夾中所有圖片的文件名列表

import os
def get_imlist(path):
    """返回目錄中所有JPG圖像的文件名列表"""
    return [os.path.join(path,f)for f in os.listdir(path) if f.endswith('.jpg')]
print(get_imlist("E:/pythonProject1/filelist/"))

輸出為文件名列表

二、Matplotlib

1、繪制圖像、點(diǎn)和線

from PIL import Image
from pylab import *
 
#讀取圖像到數(shù)組中
im = array(Image.open("empire.jpeg"))
 
#繪制圖像
imshow(im)
 
#一些點(diǎn)
x = [100, 100, 400, 400]
y = [200, 500, 200, 500]
 
#使用紅色星狀標(biāo)記繪制點(diǎn)
plot(x, y)#默認(rèn)為藍(lán)色實(shí)線
# plot(x, y, 'r*')#紅色星狀標(biāo)記
# plot(x, y, 'go-')#帶有圓圈標(biāo)記的綠線
# plot(x, y, 'ks')#帶有正方形標(biāo)記的黑色虛線
 
#繪制連接前三個點(diǎn)的線
plot(x[:3], y[:3])
axis('off')
 
#添加標(biāo)題,顯示繪制的圖像
titles = ['empire']
plt.title = titles
show()

上面的代碼首先繪制出原始圖像,然后在 x 和 y 列表中給定點(diǎn)的 x 坐標(biāo)和 y 坐標(biāo)上繪制出紅色星狀標(biāo)記點(diǎn),最后在兩個列表表示的前兩個點(diǎn)之間繪制一條線段。該例子的繪制結(jié)果下圖:

2、圖像輪廓和直方圖

繪制輪廓需要對每個坐標(biāo) [x, y] 的像素值施加同一個閾值,所以首先需要將圖像灰度化,這里用 PIL 的 convert() 方法將圖像轉(zhuǎn)換成灰度圖像。圖像的直方圖用來表征該圖像像素值的分布情況。

from PIL import Image
from pylab import *
 
# 讀取圖像到數(shù)組中
im = array(Image.open("empire.jpeg").convert('L'))
 
#創(chuàng)建一個圖像
figure()
#不使用顏色信息
gray()
#在原點(diǎn)的左上角顯示輪廓圖像
contour(im, origin = 'image')#檢測圖像輪廓
axis('equal')
axis('off')
show()
#新建一個圖像
figure
hist(im.flatten(), 128)#繪制圖像直方圖
show()

圖像輪廓圖輸出如下所示:

輸出圖像直方圖如下所示:

3、交互式標(biāo)注

在一幅圖像中標(biāo)記一些點(diǎn),或者標(biāo)注一些訓(xùn)練數(shù)據(jù)。PyLab 庫中的 ginput() 函數(shù)就可以實(shí)現(xiàn)交互式標(biāo)注。在圖像點(diǎn)擊三次,則程序會自動將這3個點(diǎn)的坐標(biāo)點(diǎn)[x, y]保存到x列表里。

from PIL import Image
from pylab import *
 
im = array(Image.open("empire.jpeg"))
imshow(im)
print("please click 3 points")
x = ginput(3)
print("you clicked",x)
show()

三、Numpy

1、圖像數(shù)組表示

對于圖像數(shù)據(jù),下面的例子闡述了這一點(diǎn)

from PIL import Image
import numpy as np
 
im = np.array(Image.open("empire.jpeg"))
print(im.shape,im.dtype)

輸出為:
(1024, 683, 3) uint8

 每行的第一個元組表示圖像數(shù)組的大?。ㄐ?、列、顏色通道),緊接著的字符串表示數(shù)組元素的數(shù)據(jù)類型。因?yàn)閳D像通常被編碼成無符號八位整數(shù)(uint8),載入圖像并將其轉(zhuǎn)換到數(shù)組中,數(shù)組的數(shù)據(jù)類型為“uint8”。

2、灰度變換

對圖像進(jìn)行灰度變換,如下所示:

from PIL import Image
import numpy as np
 
im = np.array(Image.open("empire.jpeg"))
print(im.shape,im.dtype)
 
from PIL import Image
from matplotlib.pylab import plt
from numpy import *
 
im1 = array(Image.open('empire.jpeg').convert('L'))
im2 = 255 - im1 #對圖像進(jìn)行反向處理
im3 = (100.0/255) * im1 + 100 #將圖像值變換到100-200之間
im4 = 255.0 * (im1/255) ** 2 #對圖像像素值求平方后得到的圖像
 
images = [im1, im2, im3, im4]
titles = ["f(x) = x", "f(x) = 255 - x", "f(x) = (100/255)*x +100", "f(x) = 255*(x/255)^2"]
#輸出圖中的最大像素值和最小像素值
print(int(im1.min()),int(im1.max()))
print(int(im2.min()),int(im2.max()))
print(int(im3.min()),int(im3.max()))
print(int(im4.min()),int(im4.max()))
 
for i in range(4):
    plt.subplot(2, 2, i+1)#2行2列,按編號順序排列
    plt.imshow(images[i])#顯示圖像
    plt.title(titles[i])#顯示標(biāo)題
    plt.gray()
    # plt.xticks([])
    # plt.yticks([])
    plt.axis('equal')
    plt.axis('off')
plt.show()

輸出接入如下所示:

總結(jié)

到此這篇關(guān)于python圖像處理基本操作的文章就介紹到這了,更多相關(guān)python圖像處理操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文詳解Python中的重試機(jī)制

    一文詳解Python中的重試機(jī)制

    本文將給大家介紹一個第三方庫-Tenacity(標(biāo)題中的重試機(jī)制并并不準(zhǔn)確,它不是 Python 的內(nèi)置模塊,因此并不能稱之為機(jī)制),它實(shí)現(xiàn)了幾乎我們可以使用到的所有重試場景,快跟隨小編一起學(xué)習(xí)一下吧
    2022-07-07
  • Python實(shí)現(xiàn)Canny及Hough算法代碼實(shí)例解析

    Python實(shí)現(xiàn)Canny及Hough算法代碼實(shí)例解析

    這篇文章主要介紹了Python實(shí)現(xiàn)Canny與Hough算法代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • python實(shí)現(xiàn)學(xué)生通訊錄管理系統(tǒng)

    python實(shí)現(xiàn)學(xué)生通訊錄管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)學(xué)生通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • python如何調(diào)用外部的exe程序

    python如何調(diào)用外部的exe程序

    本文介紹了在Python中執(zhí)行外部exe命令時遇到的問題及解決方法,包括路徑寫法、中文輸出亂碼以及文件編碼等問題,并提供了一些個人經(jīng)驗(yàn)
    2025-02-02
  • flask應(yīng)用部署到服務(wù)器的方法

    flask應(yīng)用部署到服務(wù)器的方法

    這篇文章主要介紹了flask應(yīng)用部署到服務(wù)器的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python文件拆分與重組實(shí)例

    python文件拆分與重組實(shí)例

    今天小編就為大家分享一篇python文件拆分與重組實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python的Django框架可適配的各種數(shù)據(jù)庫介紹

    Python的Django框架可適配的各種數(shù)據(jù)庫介紹

    這篇文章主要介紹了Python的Django框架可適配的各種數(shù)據(jù)庫,簡單總結(jié)為就是流行的幾種數(shù)據(jù)庫Python基本上全部能用XD 需要的朋友可以參考下
    2015-07-07
  • python從gbff文件中直接提取cds序列

    python從gbff文件中直接提取cds序列

    這篇文章主要為大家介紹了python從gbff文件中直接提取cds序列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • python基礎(chǔ)之Numpy庫中array用法總結(jié)

    python基礎(chǔ)之Numpy庫中array用法總結(jié)

    NumPy(Numerical Python的縮寫)是一個開源的Python科學(xué)計算庫,使用NumPy就可以很自然地使用數(shù)組和矩陣,這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)之Numpy庫中array用法的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • python返回數(shù)組索引的方法實(shí)現(xiàn)

    python返回數(shù)組索引的方法實(shí)現(xiàn)

    本文介紹了三種在Python中返回數(shù)組索引的方法,主要包括index()方法,enumerate()方法及使用numpy庫的argwhere()函數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01

最新評論

萝北县| 宁蒗| 平潭县| 峨山| 泌阳县| 日喀则市| 巴中市| 黔江区| 高平市| 扬州市| 柘城县| 安龙县| 峡江县| 襄城县| 盐边县| 咸丰县| 鄂托克前旗| 慈利县| 桦南县| 玛沁县| 通州区| 湘乡市| 东乡族自治县| 和龙市| 南城县| 无极县| 昌都县| 获嘉县| 辰溪县| 河源市| 香港| 钟祥市| 柞水县| 晴隆县| 麻江县| 遵义市| 息烽县| 开封县| 洛宁县| 泊头市| 武夷山市|