<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Python圖像灰度變換及圖像數組操作方法

        來源:懂視網 責編:小采 時間:2020-11-27 14:16:22
        文檔

        Python圖像灰度變換及圖像數組操作方法

        Python圖像灰度變換及圖像數組操作方法:這篇文章主要介紹了Python圖像灰度變換及圖像數組操作的相關資料,需要的朋友可以參考下使用python以及numpy通過直接操作圖像數組完成一系列基本的圖像處理numpy簡介:NumPy是一個非常有名的 Python 科學計算工具包,其中包含了大量有用的工具,比如數組對象(
        推薦度:
        導讀Python圖像灰度變換及圖像數組操作方法:這篇文章主要介紹了Python圖像灰度變換及圖像數組操作的相關資料,需要的朋友可以參考下使用python以及numpy通過直接操作圖像數組完成一系列基本的圖像處理numpy簡介:NumPy是一個非常有名的 Python 科學計算工具包,其中包含了大量有用的工具,比如數組對象(
        這篇文章主要介紹了Python圖像灰度變換及圖像數組操作的相關資料,需要的朋友可以參考下

        使用python以及numpy通過直接操作圖像數組完成一系列基本的圖像處理

        numpy簡介:

        NumPy是一個非常有名的 Python 科學計算工具包,其中包含了大量有用的工具,比如數組對象(用來表示向量、矩陣、圖像等)以及線性代數函數。

        數組對象可以實現數組中重要的操作,比如矩陣乘積、轉置、解方程系統、向量乘積和歸一化。這為圖像變形、對變化進行建模、圖像分類、圖像聚類等提供了基礎。

        在上一篇python基本圖像操作中,當載入圖像時,通過調用 array() 方法將圖像轉換成NumPy的數組對象。NumPy 中的數組對象是的,可以用來表示向量、矩陣和圖像。通過對圖像的數組進行直接操作,就可以完成很多圖像處理。

        numpy的相關知識網上有很多資料,作為python科學計算的基礎,還是非常值得認真學習的。

        使用圖像數組進行基本圖像操作:

        認識圖像數組:

        通過下面這幾個程序我們看一下圖像與灰度圖的圖像數組,以及numpy數組的切片。

        # -*- coding: utf-8 -*-
        from PIL import Image
        from pylab import *
        #讀取圖片并轉為數組
        im = array(Image.open("./source/test.jpg"))
        #
        輸出數組的各維度長度以及類型 print im.shape,im.dtype #輸出位于坐標100,100,顏色通道為r的像素值 print im[100,100,0] #輸出坐標100,100的rgb值 print im[100,100]及類型 print im.shape,im.dtype

        運行結果:

        (600, 500, 3) uint8

        [ 117 195]

        我們看到的是一個三維數組,分別代表橫坐標,縱坐標和顏色通道。

        我們可以通過數組把紅藍通道交換

        # -*- coding: utf-8 -*-
        from PIL import Image
        from pylab import *
        #讀取圖片并轉為數組
        im = array(Image.open("./source/test.jpg"))
        #紅色通道
        r = im[:,:,0]
        #交換紅藍通道并顯示
        im[:,:,0] = im[:,:,2]
        im[:,:,2] = r
        imshow(im)
        show()

        這里用到了numpy數組的切片方式,關于numpy的資料網上有很多,就不過多敘述了。

        運行結果:

        Python圖像灰度變換及圖像數組操作方法

        在轉為數組的過程中我們可以設定數據類型,同時灰度圖的圖像數組也是有意義的:

        # -*- coding: utf-8 -*-
        from PIL import Image
        from pylab import *
        #讀取圖片,灰度化,并轉為數組
        im = array(Image.open("./source/test.jpg").convert('L'),'f')
        #
        輸出數組的各維度長度以及類型 print im.shape,im.dtype #輸出坐標100,100的值 print im[100,100]

        運行結果:

        (600, 500) float32
        110.0

        額外的參數‘f'將數組的數據類型轉為浮點數

        由于灰度圖沒有顏色信息,所以形狀元組只有兩個數值

        *array()變換的相反操作可以使用PIL的fromarray()完成,如im = Image.fromarray(im)

        圖像數組的簡單應用——灰度變換:

        灰度圖像:

        灰度數字圖像是每個像素只有一個采樣顏色的圖像。這類圖像通常顯示為從最暗黑色到最亮的白色的灰度。

        可以通過下面幾種方法,將圖像轉換為灰度:

        1.浮點算法:Gray=R*0.3+G*0.59+B*0.11

        2.整數方法:Gray=(R*30+G*59+B*11)/100

        3.移位方法:Gray =(R*76+G*151+B*28)>>8;

        4.平均值法:Gray=(R+G+B)/3;

        5.僅取綠色:Gray=G;

        通過上述任一種方法求得Gray后,將原來的RGB(R,G,B)中的R,G,B統一用Gray替換,形成新的顏色RGB(Gray,Gray,Gray),用它替換原來的RGB(R,G,B)就是灰度圖了。

        之前已經使用過很多次了,使用python可以通過使用convert(‘L')來獲得灰度圖

        灰度變換:

        將圖像讀入 NumPy 數組對象后,我們可以對它們執行任意數學操作。一個簡單的例子就是圖像的灰度變換。即任意函數 f ,它將 0…255 區間(或者 0…1 區間)映射到自身。

        下面程序中有一些簡單的灰度變換:

        #-*- coding: utf-8 -*-
        from PIL import Image
        from pylab import *
        #讀取圖片,灰度化,并轉為數組
        im = array(Image.open("./source/test.jpg").convert('L'))
        im2 = 255 - im # 對圖像進行反相處理
        im3 = (100.0/255) * im + 100 # 將圖像像素值變換到 100...200 區間
        im4 = 255.0 * (im/255.0)**2 # 對圖像像素值求平方后得到的圖像(二次函數變換,使較暗的像素值變得更小)
        #2x2顯示結果 使用第一個顯示原灰度圖
        subplot(221)
        title('f(x) = x')
        gray()
        imshow(im)
        #2x2顯示結果 使用第二個顯示反相圖
        subplot(222)
        title('f(x) = 255 - x')
        gray()
        imshow(im2)
        #2x2顯示結果 使用第三個顯示100-200圖
        subplot(223)
        title('f(x) = (100/255)*x + 100')
        gray()
        imshow(im3)
        #2x2顯示結果 使用第四個顯示二次函數變換圖
        subplot(224)
        title('f(x) =255 *(x/255)^2')
        gray()
        imshow(im4)
        #
        輸出圖中的最大和最小像素值 print int(im.min()),int(im.max()) print int(im2.min()),int(im2.max()) print int(im3.min()),int(im3.max()) print int(im4.min()),int(im4.max()) show()

        運行結果:

        Python圖像灰度變換及圖像數組操作方法

        0 255
        0 255
        100 200
        0 255

        可以比較明顯的看到灰度變換的結果,,第二張圖被反相顯示,第三張圖像的暗部變亮,亮部變暗,其值被在100到200之間,其中最后一張圖像通過二次函數變換使較暗的像素值變得更暗。

        結語:

        本篇博客介紹了python使用圖像數組去進行圖像操作的過程,包括幾個簡單的實例,通過數組我們可以對圖像進行任意數學操作,是圖像變形、圖像分類、圖像聚類等的基礎,希望我的博客對大家有所幫助~

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Python圖像灰度變換及圖像數組操作方法

        Python圖像灰度變換及圖像數組操作方法:這篇文章主要介紹了Python圖像灰度變換及圖像數組操作的相關資料,需要的朋友可以參考下使用python以及numpy通過直接操作圖像數組完成一系列基本的圖像處理numpy簡介:NumPy是一個非常有名的 Python 科學計算工具包,其中包含了大量有用的工具,比如數組對象(
        推薦度:
        標簽: 圖片 圖像 python
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top 主站蜘蛛池模板: 亚洲?v无码国产在丝袜线观看| 杨幂最新免费特级毛片| 免费91麻豆精品国产自产在线观看| 亚洲成A人片在线观看无码3D | 亚洲中文字幕日本无线码| 麻豆一区二区免费播放网站| 精品无码一区二区三区亚洲桃色 | 伊人久久大香线蕉免费视频| AV在线亚洲男人的天堂| 中文字幕在线视频免费| 亚洲成AV人片在线播放无码| 国产成人精品无码免费看| 亚洲一区免费观看| 成年在线观看网站免费| 亚洲人成网站在线在线观看| 国产成人高清精品免费鸭子| jizz免费在线观看| 亚洲视频在线一区| 成年人网站在线免费观看| 国产精品亚洲专一区二区三区| 亚洲av无码成人精品区在线播放| 精品乱子伦一区二区三区高清免费播放 | 99国产精品免费视频观看| 亚洲伊人久久大香线蕉在观| 免费观看大片毛片| 国产精品一区二区三区免费| 亚洲va无码va在线va天堂| 无遮免费网站在线入口| 免费在线观看亚洲| 午夜影视日本亚洲欧洲精品一区| 无人在线观看免费高清视频| 特级毛片免费播放| 亚洲网站免费观看| 免费A级毛片无码久久版| 国产成人无码区免费内射一片色欲 | 亚洲美女视频一区| 免费无遮挡无码永久在线观看视频| 久久免费99精品国产自在现线| 亚洲最新中文字幕| 亚洲男人的天堂在线va拉文| 亚欧免费视频一区二区三区|