基於python----影像的表示和視覺化
經過取樣和量化之後,影像I已經稱為空間位置和響應值均離散的數字影像。影像上的每個位置(x,y)以及其對應量化響應值稱為一個畫素。
影像的表示
二維矩陣是表示數字影像的重要數字形式。一幅M*N的影像可以表示為矩陣,矩陣中的每個元素稱為影像的畫素。每個畫素都有它自己的空間位置和值,值是這一位置畫素的顏色或者強度。
與影像相關的重要指標是影像解析度。影像解析度是指組成一幅影像的畫素密度。對同樣大小的一幅圖,組成該圖的影像畫素數目越多,說明影像的解析度越高,看起來越來越逼真。相反,畫素越少,影像越粗糙。影像解析度包括空間解析度和灰度級(響應幅度)解析度。空間解析度是影像中可辯別的最小空間細節,取樣值多少是決定影像空間解析度的主要引數。
讀取
skimage
from skimage import io,data,color
from matplotlib import pyplot as plt
img=io.imread('123.jpg')
img1=data.astronaut()
print(img.shape)
img0=io.imread('123.jpg',as_gray=True)
print("影像型別:",type(img))#顯示型別
print("影像大小:",img.shape)#顯示型別
print(img.shape[0])
print(img.shape[1])
print(img.shape[2])
print(img.size)
print(img.max())
print(img.min())
print(img.mean())
print(img[0][0])
plt.subplot(211),io.imshow(img)
plt.title('Input Image'),plt.xticks([]),plt.yticks([])
plt.subplot(212),io.imshow(img0)
plt.show()
opencv
import cv2 as cv
img=cv.imread('123.jpg')
print("影像型別:",type(img))#顯示型別
print("影像大小:",img.shape)#顯示型別
print(img.shape[0])
print(img.shape[1])
print(img.shape[2])
print(img.size)
print(img.max())
print(img.min())
print(img.mean())
print(img[0][0])
img1=cv.imread('123.jpg',0)
cv.imshow('Color',img)
cv.imshow('gray',img1)
cv.waitKey(0)
cv.destroyAllWindows()
顏色通道操作
from skimage import io,data,color
from matplotlib import pyplot as plt
image=io.imread('123.jpg')
image_r=image[:,:,0]
image_g=image[:,:,1]
image_b=image[:,:,2]
plt.subplot(2,2,1)
io.imshow(image)
plt.subplot(2,2,2)
io.imshow(image_r)
plt.subplot(2,2,3)
io.imshow(image_g)
plt.subplot(2,2,4)
io.imshow(image_b)
plt.show()
編寫一個數字影像讀入,顯示,區域裁剪的程式,並分別顯示R,G,B三個通道的影像
from PIL import Image
import matplotlib.pyplot as plt
from skimage import io
img2 = io.imread('456.jpg')
img = Image.open('456.jpg') # 開啟影像.
gray = img.convert('L') # 轉換成灰度
r, g, b = img.split() # 分離三通道
pic = Image.merge('RGB', (r, g, b)) # 合併三通道
plt.figure("beauty")
plt.subplot(3, 3, 1), plt.title('origin')
plt.imshow(img), plt.axis('off')
# 影像裁剪
img3 = img2[20:400, 50:1000]
plt.figure("beauty")
plt.subplot(3, 3, 7), plt.title('caijian')
plt.imshow(img3), plt.axis('off')
plt.subplot(3, 3, 4), plt.title('r')
plt.imshow(r, cmap='gray'), plt.axis('off')
plt.subplot(3, 3, 5), plt.title('g')
plt.imshow(g, cmap='gray'), plt.axis('off')
plt.subplot(3, 3, 6), plt.title('b')
plt.imshow(b, cmap='gray'), plt.axis('off')
plt.show()
後續
如果想了解更多物聯網、智慧家居專案知識,可以關注我的專案實戰專欄。
或者關注公眾號。
編寫不易,感謝支援。
相關文章
- 視覺化影像處理 | 視覺化訓練器 | 影像分類視覺化
- 視覺化醫學影像CT視覺化
- 基於影像視覺詞彙的文字分類方法(完整專案)視覺文字分類
- [計算機視覺]基於內容的影像搜尋實現計算機視覺
- 「影像分類」 實戰影像分類網路的視覺化視覺化
- Vs – 基於 d3.js 和 vue.js 的資料視覺化Vue.js視覺化
- 基於數字孿生+視覺化技術的智慧充電站視覺化運維平臺方案視覺化運維
- 基於bootstrap實現視覺化佈局工具boot視覺化
- 基於Python的資料視覺化 matplotlib seaborn pandasPython視覺化
- 基於校園一卡通和WIFI使用記錄的資料分析和視覺化WiFi視覺化
- 關於資料視覺化的思考視覺化
- 基於 WebGl HTML5 的 3D 視覺化機房WebHTML3D視覺化
- 基於鑽孔資料的三維地質模型視覺化模型視覺化
- 智慧運維:基於 BIM 技術的視覺化管理系統運維視覺化
- 視覺化學習:WebGL的基礎使用視覺化Web
- 基於 HTML5 + WebGL 的無人機 3D 視覺化系統HTMLWeb無人機3D視覺化
- 基於 vue 的移動端頁面視覺化搭建工具思路Vue視覺化
- 基於Pandas+ECharts的金融大資料視覺化實現方案Echarts大資料視覺化
- 在pytorch上基於tensorboard的訓練過程的視覺化PyTorchORB視覺化
- 影像識別的視覺化解釋史視覺化
- 用於影像降噪的卷積自編碼器 | 視覺進階卷積視覺
- 基於 HTML5 和 VR 技術的 3D 機房資料中心視覺化HTMLVR3D視覺化
- 視覺化學習:圖形系統中的顏色表示視覺化
- 分享5個視覺化的正規表示式編輯工具視覺化
- 基於Python實現互動式資料視覺化的工具(用於Web)Python視覺化Web
- 基於影像語義的視覺化同時定位和建圖的面向應用程式的移動機器人自主導航解決方案綜述視覺化機器人
- Caffe簡單例程,影像處理,Netscope視覺化方法單例視覺化
- 紅色視覺網,一個基於thinkphp的視覺類圖片網站視覺PHP網站
- 基於 HTML5 WebGL 的 3D 風機視覺化系統HTMLWeb3D視覺化
- 基於 WebGL 的 HTML5 3D 工控隧道視覺化系統WebHTML3D視覺化
- 基於 HTML5 WebGL 的挖掘機 3D 視覺化應用HTMLWeb3D視覺化
- 基於 ReactJS 開發簡單的視覺化業務編輯器 01ReactJS視覺化
- 基於Web的數字孿生三維視覺化綜合管理系統Web視覺化
- WebGL入門之基於WebGL的3D視覺化引擎介紹Web3D視覺化
- 基於 Vue2.0 + Element 的單頁面視覺化開發實踐Vue視覺化
- 關於資料視覺化那些事視覺化
- Matplotlib資料視覺化基礎視覺化
- 目標檢測和影像分類及其相關計算機視覺的影像分佈計算機視覺