在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ Scipy Ndimage
Scipy積分
Scipy優(yōu)化算法
Scipy特殊包
Scipy簇聚
Scipy ODR
Scipy Ndimage
Scipy插值
Scipy CSGraph
Scipy輸入和輸出
Scipy開發(fā)環(huán)境安裝
Scipy簡(jiǎn)介
Scipy常量
Scipy統(tǒng)計(jì)函數(shù)
Scipy Linalg
Scipy空間
Scipy FFTpack
Scipy基本功能
Scipy教程

Scipy Ndimage

SciPy的ndimage子模塊專用于圖像處理。 這里,ndimage表示一個(gè)n維圖像。

圖像處理中一些最常見的任務(wù)如下:

  • 輸入/輸出,顯示圖像
  • 基本操作 - 裁剪,翻轉(zhuǎn),旋轉(zhuǎn)等
  • 圖像過濾 - 去噪,銳化等
  • 圖像分割 - 標(biāo)記對(duì)應(yīng)于不同對(duì)象的像素
  • 分類
  • 特征提取
  • 注冊(cè)

下面來看看如何使用SciPy實(shí)現(xiàn)其中的一些功能。

打開和寫入圖像文件

SciPy中的misc包附帶了一些圖像。 在這里,使用這些圖像來學(xué)習(xí)圖像操作。請(qǐng)看看下面的例子。

from scipy import misc
f = misc.face()
misc.imsave('face.png', f) # uses the Image module (PIL)

import matplotlib.pyplot as plt
plt.imshow(f)
plt.show()

執(zhí)行上面示例代碼,得到以下輸出結(jié)果 -

原始格式的任何圖像是由矩陣格式中的數(shù)字表示的顏色的組合。 機(jī)器只能根據(jù)這些數(shù)字理解和操作圖像。 RGB是一種流行的表示方式。

下面來看看上面圖片的統(tǒng)計(jì)信息。

from scipy import misc
f = misc.face()
misc.imsave('face.png', f) # uses the Image module (PIL)

face = misc.face(gray = False)
print (face.mean(), face.max(), face.min())

執(zhí)行上面示例代碼,得到以下結(jié)果 -

110.162743886 255 0

現(xiàn)在,我們已經(jīng)知道圖像是由數(shù)字組成的,所以數(shù)字值的任何變化都會(huì)改變?cè)紙D像。接下來對(duì)圖像執(zhí)行一些幾何變換。 基本的幾何操作是裁剪 -

from scipy import misc
f = misc.face()
misc.imsave('face.png', f) # uses the Image module (PIL)
face = misc.face(gray = True)
lx, ly = face.shape

crop_face = face[int(lx/4): -int(lx/4), int(ly/4): -int(ly/4)]

import matplotlib.pyplot as plt
plt.imshow(crop_face)
plt.show()

執(zhí)行上面示例代碼,得到以下結(jié)果 -

也可以執(zhí)行一些基本的操作,例如像下面描述的那樣倒置圖像。參考以下代碼 -

from scipy import misc

face = misc.face()
flip_ud_face = np.flipud(face)

import matplotlib.pyplot as plt
plt.imshow(flip_ud_face)
plt.show()

執(zhí)行上面示例代碼,得到以下結(jié)果 -

除此之外,還有rotate()函數(shù),它以指定的角度旋轉(zhuǎn)圖像。

# rotation
from scipy import misc,ndimage
face = misc.face()
rotate_face = ndimage.rotate(face, 45)

import matplotlib.pyplot as plt
plt.imshow(rotate_face)
plt.show()

執(zhí)行上面示例代碼,得到以下結(jié)果 -

濾鏡

下面來看看濾鏡如何應(yīng)用在圖像處理中。

圖像處理中的濾鏡是什么?

濾鏡是一種修改或增強(qiáng)圖像的技術(shù)。 例如,可以過濾圖像以強(qiáng)調(diào)某些功能或刪除其他功能。 通過濾鏡實(shí)現(xiàn)的圖像處理操作包括平滑,銳化和邊緣增強(qiáng)。

濾鏡是一種鄰域操作,其中輸出圖像中任何給定像素的值是通過對(duì)相應(yīng)輸入像素的鄰域中的像素的值應(yīng)用某種算法來確定的。 現(xiàn)在使用SciPy ndimage執(zhí)行一些操作。

模糊

模糊廣泛用于減少圖像中的噪聲。 可以執(zhí)行過濾操作并查看圖像中的更改??纯聪旅娴睦?。

from scipy import misc
face = misc.face()
blurred_face = ndimage.gaussian_filter(face, sigma=3)
import matplotlib.pyplot as plt
plt.imshow(blurred_face)
plt.show()

執(zhí)行上面示例代碼,得到以下結(jié)果 -

sigma值表示5級(jí)模糊程度。 通過調(diào)整sigma值,可以看到圖像質(zhì)量的變化。

邊緣檢測(cè)

討論邊緣檢測(cè)如何幫助圖像處理。

什么是邊緣檢測(cè)?

邊緣檢測(cè)是一種用于查找圖像內(nèi)物體邊界的圖像處理技術(shù)。 它通過檢測(cè)亮度不連續(xù)性來工作。 邊緣檢測(cè)用于諸如圖像處理,計(jì)算機(jī)視覺和機(jī)器視覺等領(lǐng)域的圖像分割和數(shù)據(jù)提取。

最常用的邊緣檢測(cè)算法包括 -

  • 索貝爾(Sobel)
  • 坎尼(Canny)
  • 普魯伊特(Prewitt)
  • 羅伯茨Roberts
  • 模糊邏輯方法

看看下面的一個(gè)例子。

import scipy.ndimage as nd
import numpy as np

im = np.zeros((256, 256))
im[64:-64, 64:-64] = 1
im[90:-90,90:-90] = 2
im = ndimage.gaussian_filter(im, 8)

import matplotlib.pyplot as plt
plt.imshow(im)
plt.show()

執(zhí)行上面示例代碼,得到以下結(jié)果 -

圖像看起來像一個(gè)方塊的顏色?,F(xiàn)在,檢測(cè)這些彩色塊的邊緣。 這里,ndimage提供了一個(gè)叫Sobel函數(shù)來執(zhí)行這個(gè)操作。 而NumPy提供了Hypot函數(shù)來將兩個(gè)合成矩陣合并為一個(gè)。

看看下面的一個(gè)例子。參考以下實(shí)現(xiàn)代碼 -

import scipy.ndimage as nd
import matplotlib.pyplot as plt

im = np.zeros((256, 256))
im[64:-64, 64:-64] = 1
im[90:-90,90:-90] = 2
im = ndimage.gaussian_filter(im, 8)

sx = ndimage.sobel(im, axis = 0, mode = 'constant')
sy = ndimage.sobel(im, axis = 1, mode = 'constant')
sob = np.hypot(sx, sy)

plt.imshow(sob)
plt.show()

執(zhí)行上面示例代碼,得到以下結(jié)果 -


上一篇:Scipy常量