python取gige圖像(python gige)

本文目錄一覽:

怎樣使用Python圖像處理

Python圖像處理是一種簡單易學,功能強大的解釋型編程語言,它有簡潔明了的語法,高效率的高層數據結構,能夠簡單而有效地實現面向對象編程,下文進行對Python圖像處理進行說明。

當然,首先要感謝「戀花蝶」,是他的文章「用Python圖像處理 」 幫我堅定了用Python和PIL解決問題的想法,對於PIL的一些介紹和基本操作,可以看看這篇文章。我這裡主要是介紹點我在使用過程中的經驗。

PIL可以對圖像的顏色進行轉換,並支持諸如24位彩色、8位灰度圖和二值圖等模式,簡單的轉換可以通過Image.convert(mode)函數完 成,其中mode表示輸出的顏色模式。例如”L”表示灰度,”1”表示二值圖模式等。

但是利用convert函數將灰度圖轉換為二值圖時,是採用固定的閾 值127來實現的,即灰度高於127的像素值為1,而灰度低於127的像素值為0。為了能夠通過自定義的閾值實現灰度圖到二值圖的轉換,就要用到 Image.point函數。

深度剖析Python語法功能

深度說明Python應用程序特點

對Python數據庫進行學習研究

Python開發人員對Python經驗之談

對Python動態類型語言解析

Image.point函數有多種形式,這裡只討論Image.point(table, mode),利用該函數可以通過查表的方式實現像素顏色的模式轉換。其中table為顏色轉換過程中的映射表,每個顏色通道應當有256個元素,而 mode表示所輸出的顏色模式,同樣的,”L”表示灰度,”1”表示二值圖模式。

可見,轉換過程的關鍵在於設計映射表,如果只是需要一個簡單的箝位值,可以將table中高於或低於箝位值的元素分別設為1與0。當然,由於這裡的table並沒有什麼特殊要求,所以可以通過對元素的特殊設定實現(0, 255)範圍內,任意需要的一對一映射關係。

示例代碼如下:

import Image # load a color image im = Image.open(”fun.jpg”) # convert to grey level image Lim = im.convert(”L”) Lim.save(”fun_Level.jpg”) # setup a converting table with constant threshold threshold = 80 table = [] for i in range(256): if i threshold: table.append(0) else: table.append(1) # convert to binary image by the table bim = Lim.point(table, ”1”) bim.save(”fun_binary.jpg”)

IT部分通常要完成的任務相當繁重但支撐這些工作的資源卻很少,這已經成為公開的秘密。任何承諾提高編碼效率、降低軟件總成本的IT解決方案都應該進行 周到的考慮。Python圖像處理所具有的一個顯著優勢就是可以在企業的軟件創建和維護階段節約大量資金,而這兩個階段的軟件成本佔到了軟件整個生命周期中總成本 的50%到95%。

Python清晰可讀的語法使得軟件代碼具有異乎尋常的易讀性,甚至對那些不是最初接觸和開發原始項目的程序員都 能具有這樣的強烈感覺。雖然某些程序員反對在Python代碼中大量使用空格。

不過,幾乎人人都承認Python圖像處理的可讀性遠勝於C或者Java,後兩 者都採用了專門的字符標記代碼塊結構、循環、函數以及其他編程結構的開始和結束。提倡Python的人還宣稱,採用這些字符可能會產生顯著的編程風格差 異,使得那些負責維護代碼的人遭遇代碼可讀性方面的困難。轉載

Python 三種imread讀取圖像的總結

從名字中可以看出這個模塊是具有matlab風格的,直接返回numpy.ndarray格式通道順序是RGB,通道值默認範圍0-255。

使用opencv讀取圖像,直接返回numpy.ndarray 對象,通道順序為BGR ,注意是BGR,通道值默認範圍0-255。

直接返回numpy.ndarray 對象,通道順序為RGB,通道值默認範圍0-255。

沒有調用默認的skimage.io.imread,返回值為0-1的float型數據,通道順序為RGB

如何用python取圖片輪廓

1、查找輪廓(find_contours)

measure模塊中的find_contours()函數,可用來檢測二值圖像的邊緣輪廓。

函數原型為:

skimage.measure.find_contours(array, level)

array: 一個二值數組圖像

level: 在圖像中查找輪廓的級別值

返回輪廓列表集合,可用for循環取出每一條輪廓。

例1:

import numpy as np

import matplotlib.pyplot as plt

from skimage import measure,draw 

#生成二值測試圖像

img=np.zeros([100,100])

img[20:40,60:80]=1  #矩形

rr,cc=draw.circle(60,60,10)  #小圓

rr1,cc1=draw.circle(20,30,15) #大圓

img[rr,cc]=1

img[rr1,cc1]=1

#檢測所有圖形的輪廓

contours = measure.find_contours(img, 0.5)

#繪製輪廓

fig, (ax0,ax1) = plt.subplots(1,2,figsize=(8,8))

ax0.imshow(img,plt.cm.gray)

ax1.imshow(img,plt.cm.gray)

for n, contour in enumerate(contours):

    ax1.plot(contour[:, 1], contour[:, 0], linewidth=2)

ax1.axis(‘image’)

ax1.set_xticks([])

ax1.set_yticks([])

plt.show()

結果如下:不同的輪廓用不同的顏色顯示

python處理圖片數據?

生成一張純色的圖片

先設置圖片的顏色,接着利用Image模塊的new方法新生成一張圖片,png格式的圖片需要設置成rgba,類似的還有rgb,L(灰度圖等),尺寸設定為640,480,這個可以根據自己的情況設定,顏色同樣如此。

批量生成圖片

上面生成了一張圖片,那要生成十張圖片呢,這種步驟一樣,只是顏色改變的,利用循環就可以解決。首先創建一個顏色列表,把要生成的圖片顏色放進去。接着循環獲取不同的顏色,保存的時候利用字符串拼接的方法改變圖片的名字。

本地生成的圖片

封裝成函數

前面的方法已經可以批量生成圖片了,為了通用性強一點,我們可以封裝成函數,把哪些可以改變的參數單獨抽離出來。尺寸也同樣,使用的時候,可以根據自己的需要定義顏色列表和尺寸。當然還有加一些提示用語和報錯兼容性,這裡就不講了。

本地生成的圖片

原創文章,作者:QJGIK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129596.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QJGIK的頭像QJGIK
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python中new和init的區別

    new和init都是Python中常用的魔法方法,它們分別負責對象的創建和初始化,本文將從多個角度詳細闡述它們的區別。 一、創建對象 new方法是用來創建一個對象的,它是一個類級別…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python for循環求1到100的積

    Python中的for循環可以方便地遍歷列表、元組、字典等數據類型。本文將以Python for循環求1到100的積為中心,從多個方面進行詳細闡述。 一、for循環語法 Pytho…

    編程 2025-04-29

發表回復

登錄後才能評論