1. 程式人生 > >用python處理圖片---單通道變多通道

用python處理圖片---單通道變多通道

一、影象通道

1、彩色影象轉灰度圖

複製程式碼

from PIL import Image
import matplotlib.pyplot as plt
img=Image.open('d:/ex.jpg')
gray=img.convert('L')
plt.figure("beauty")
plt.imshow(gray,cmap='gray')
plt.axis('off')
plt.show()

複製程式碼

使用函式convert()來進行轉換,它是影象例項物件的一個方法,接受一個 mode 引數,用以指定一種色彩模式,mode 的取值可以是如下幾種:

· 1 (1-bit pixels, black and white, stored with one pixel per byte)

· L (8-bit pixels, black and white)

· P (8-bit pixels, mapped to any other mode using a colour palette)

· RGB (3x8-bit pixels, true colour)

· RGBA (4x8-bit pixels, true colour with transparency mask)

· CMYK (4x8-bit pixels, colour separation)

· YCbCr (3x8-bit pixels, colour video format)

· I (32-bit signed integer pixels)

· F (32-bit floating point pixels)

2、通道分離與合併

複製程式碼

from PIL import Image
import matplotlib.pyplot as plt
img=Image.open('d:/ex.jpg')  #開啟影象
gray=img.convert('L')   #轉換成灰度
r,g,b=img.split()   #分離三通道
pic=Image.merge('RGB',(r,g,b)) #合併三通道
plt.figure("beauty")
plt.subplot(2,3,1), plt.title('origin')
plt.imshow(img),plt.axis('off')
plt.subplot(2,3,2), plt.title('gray')
plt.imshow(gray,cmap='gray'),plt.axis('off')
plt.subplot(2,3,3), plt.title('merge')
plt.imshow(pic),plt.axis('off')
plt.subplot(2,3,4), plt.title('r')
plt.imshow(r,cmap='gray'),plt.axis('off')
plt.subplot(2,3,5), plt.title('g')
plt.imshow(g,cmap='gray'),plt.axis('off')
plt.subplot(2,3,6), plt.title('b')
plt.imshow(b,cmap='gray'),plt.axis('off')
plt.show()

複製程式碼

二、裁剪圖片

從原圖片中裁剪感興趣區域(roi),裁剪區域由4-tuple決定,該tuple中資訊為(left, upper, right, lower)。 Pillow左邊系統的原點(0,0)為圖片的左上角。座標中的數字單位為畫素點。

複製程式碼

from PIL import Image
import matplotlib.pyplot as plt
img=Image.open('d:/ex.jpg')  #開啟影象
plt.figure("beauty")
plt.subplot(1,2,1), plt.title('origin')
plt.imshow(img),plt.axis('off')

box=(80,100,260,300)
roi=img.crop(box)
plt.subplot(1,2,2), plt.title('roi')
plt.imshow(roi),plt.axis('off')
plt.show()

複製程式碼

用plot繪製顯示出圖片後,將滑鼠移動到圖片上,會在右下角出現當前點的座標,以及畫素值。

三、幾何變換 

Image類有resize()、rotate()和transpose()方法進行幾何變換。

 1、影象的縮放和旋轉

dst = img.resize((128, 128))
dst = img.rotate(45) # 順時針角度表示
2、轉換影象
dst = im.transpose(Image.FLIP_LEFT_RIGHT) #左右互換
dst = im.transpose(Image.FLIP_TOP_BOTTOM) #上下互換
dst = im.transpose(Image.ROTATE_90)  #順時針旋轉
dst = im.transpose(Image.ROTATE_180)
dst = im.transpose(Image.ROTATE_270)
transpose()和rotate()沒有效能差別。

相關推薦

python處理圖片---通道通道

一、影象通道 1、彩色影象轉灰度圖 from PIL import Image import matplotlib.pyplot as plt img=Image.open('d:/ex.jpg') gray=img.convert('L') plt.

python處理圖片---通道轉換、裁剪與幾何變換

                   用python處理圖片---通道轉換、裁剪與幾何變換 1、彩色影象轉灰度圖 轉載:https://www.cnblogs.com/denny402/p/5

Python BeautifulSoup寫的一份執行緒圖片抓取的指令碼

最近一個做設計的妹子需要從一個素材的網站(https://www.goodfon.su)下載各種圖片原圖作為設計的素材,但是苦於境外網站,而且只能單張下載,而且單張圖片需要兩個路徑才能到達原圖的下載地址。 幾年沒寫過Python的我決定從操就業幫她寫一份批量下載的指令碼。由於是國外網站

python進行圖片處理和特徵提取

原文來自:http://www.analyticsvidhya.com/blog/2015/01/basics-image-processing-feature-extraction-python/ 毫無疑問,上面的那副圖畫看起來像一幅電腦背景圖片。這些都歸功於我的

Angularjs 前端資料orderBy排序,表頭和表頭處理表頭不預設排序

  orderBy這個功能其實是內建的過濾器,他可以在html和js程式碼中使用     html:{{ orderBy_expression | orderBy : expression : reverse}}     js    :$filter('orderBy

Python處理圖片縮略圖

multi ssi rect paths () directory tip 進程 filename CPU 密集型任務和 IO 密集型任務分別選擇多進程multiprocessing.Pool.map 和多線程庫multiprocessing.dummy.Pool.map

Python告訴你深圳房租有高,做程式設計師真的買得起嘛

概述 前言 統計結果 爬蟲技術分析 爬蟲程式碼實現 爬蟲分析實現 後記 前言 最近各大一二線城市的房租都有上漲,究竟整體上漲到什麼程度呢?我們也不得而知,於是乎 zone 為了一探究竟,便用 Python 爬取了房某下的深圳的租房資料,以下是本次的樣本資料:

python去除圖片中指定顏色的畫素

用python去除圖片白色畫素 需要python和pil from PIL import Image import numpy as np import cv2 img2 = Image.open('./Amazing_COL_2Fix.bmp') img1 = Image.open('./

Python處理文字——刪除.txt每行中的不必要字元

最近實驗室給配了臺新電腦,想把原電腦上的python第三方庫遷移到新電腦上,但逐一使用pip安裝又太麻煩。現在使用pip命令批量安裝,省去逐一安裝的麻煩。 在原電腦CMD使用pip list命令獲得的package每行後面都帶有版本號,如下 C:\Users\27641>pip lis

使用OpenCV+Python處理圖片的顏色空間(色域)

Image Segmentation Using Color Spaces in OpenCV + Python by Rebecca Stone Sep 26, 2018 intermediate machine-learning From https://realpython.com/p

Python 處理 HTML 轉義字元的5種方式

寫爬蟲是一個傳送請求,提取資料,清洗資料,儲存資料的過程。在這個過程中,不同的資料來源返回的資料格式各不相同,有 JSON 格式,有 XML 文件,不過大部分還是 HTML 文件,HTML 經常會混雜有轉移字元,這些字元我們需要把它轉義成真正的字元。 什麼是轉義字元 在 HTML 中 <

教你Python壓縮圖片

質量、速度、廉價,選擇其中兩個 如果需要做圖片識別那麼必定需要大量的訓練素材,我們通常使用爬蟲來獲取,python爬取bing圖片,python爬取百度圖片,但是怕取下來的圖片大小不一,再進行訓練之前必須進行裁剪和壓縮,今天就來講一講圖片壓縮,下面這個例子是我做一個專案時用到的

Python告訴你深圳房租有

. 前言 最近各大一二線城市的房租都有上漲,究竟整體上漲到什麼程度呢?我們也不得而知,於是乎 zone 為了一探究竟,便用 Python 爬取了房某下的深圳的租房資料,以下是本次的樣本資料: 除去【不限】的資料(因為可能會與後面重疊),總資料量為 16971 ,

學會Python處理Excel文件,萬行Excel資料隨便解決!

前段時間小編分享了一篇關於處理文件的文章,本來想第二天再發一篇有關於處理Excel的文章,沒想到後面忘了,今天特地補上用Python來處理Excel文件。python再用於處理資料是非常合適的,所以難免會經常要對excel文件進行讀取的操作,網上這方面的資料相對來說比較殘缺;因此,搜尋了很多資料,總結一下比較

Python處理非平穩時間序列(附程式碼)

原文地址:https://blog.csdn.net/tmb8z9vdm66wh68vx1/article/details/84207895 由於排版和圖片原因,請儘量轉制原文觀看,在此只是作為個人的一個記錄。 作者:AISHWARYA SINGH 翻譯:陳之炎 校對:丁楠雅 本

python處理PDF怎麼辦?

import PyPDF2 as pdf inputfile = "/path/to/your/pdf/file" outputfile = "/path/to/your/new/pdf/file" reader = pdf.PdfFileReader(inputfile)

python 處理丟包log的數字

2008-03-31 先用bash指令碼排序,然後用python指令碼找出丟失的數字。當然,也可以完全在python指令碼中完成。 #!/usr/bin/python filename:findlost.py http://b

Python生成圖片驗證碼,

用Python生成圖片驗證碼, Python版本:Python3.6 程式碼如下: # -*-coding:utf-8 -*- from PIL import Image, ImageDraw, ImageFont, ImageFilter import random import

STM32 ADC通道通道_DMA學習筆記

#include "stm32f10x.h"//這個標頭檔案包括STM32F10x所有外圍暫存器、位、記憶體映 射的定義#include "eval.h" //標頭檔案(包括串列埠、按鍵、LED的函式宣告)#include "SysTickDelay.h" #include "UART_INTERFACE.h

python圖片切分為九宮格 並打包成exe可執行檔案

前言經常在朋友圈或者微博看到九宮格顯示的圖片,雖然是九張圖片,但是這是一張圖片經過切割而成的,顯示效果很震撼。今天,我們就用python將圖片切分為九宮格,並打包成exe可執行檔案,就算不需要程式碼也可以輕鬆實現。效果微信切圖前後的對比圖:微博的切圖前後的對比圖:準備匯入需要