import cv2
# 用cv2開啟檔案
path =
"dress.jpeg"
im = cv2.imread(path)
# 設定視窗格式
cv2.namedwindow(
"dress",0
)# 顯示視窗,根據視窗名追蹤視窗
cv2.imshow(
"dress"
, im)
# 等待輸入
cv2.waitkey(
)# 摧毀所有視窗
如果太大,可以設定cv2.namedwindow("dress", 0)
,預設值是1。
# src:輸入影象
# im2:輸出影象,與輸入影象具有相同大小和深度
# code:色彩空間轉換**,例如cv2.color_bgr2gray等
# dstcn:目標影象中的通道數;預設引數為0,從src和code自動匯出通道
im2 = cv2.cvtcolor(im, cv2.color_bgr2rgb,0)
# 根據不同通道進行分離
# bimb = im2[:,
:,0]
# gimg = im2[:,
:,1]
# rimr = im2[:,
:,2]
# 平均卷積核
kernel_a = np.array(([
0,0.2,0]
,[0.2,
0.2,
0.2],[
0,0.2,0]
), dtype=
"float32"
)# 加權卷積核
kernel_q = np.array(([
0.1,
0.1,
0.1],[
0.1,
0.2,
0.1],[
0.1,
0.1,
0.1]
), dtype=
"float32"
)ima = cv2.filter2d(im,-1
, kernel_a)
imq = cv2.filter2d(im,-1
, kernel_q)
左:原圖, 中:平均卷積核,右加權卷積核
# 平均濾波
# im 原始
# ksize 濾波器大小(x, y)
ima = cv2.blur(im,(5
,5))
# 高斯濾波
# ksize 濾波器大小(x, y)
# sigmax 模糊半徑
img = cv2.gaussianblur(im,(3
,3),
10, sigmay=10)
# 中值濾波
# ksize n ,代表n*n方塊裡取中間值
imm = cv2.medianblur(im,
9)
左:平均濾波,中:高斯濾波,右:中值濾波
# 獲得乙個高斯卷積核
kernel = cv2.getgaussiankernel(3,
5)# 開運算
im2 = cv2.morphologyex(im, cv2.morph_open, kernel)
# 閉運算
im3 = cv2.morphologyex(im, cv2.morph_open, kernel)
左:原圖, 中:開運算, 右:閉運算
# 獲得乙個高斯卷積核
kernel = cv2.getgaussiankernel(3,
5)# 腐蝕的兩種方式
im2 = cv2.morphologyex(im, cv2.morph_erode, kernel)
im21 = cv2.erode(im, kernel)
# 膨脹的兩種方式
im3 = cv2.morphologyex(im, cv2.morph_dilate, kernel)
im31 = cv2.dilate(im, kernel)
左1:原圖,左2:腐蝕1,左3,腐蝕2,左4:膨脹1,左5膨脹2
左起:原圖,border_constant, border_replicate, boder_reflect
opencv的Mat類基本操作
官方對mat介紹的原話 the class mat represents an n dimensional dense numerical single channel or multi channel array.it can be used to store real or complex va...
逐步積累openCV基本操作
1,opencv中的roi介紹 roi region of interest 是指影象中的乙個矩形區域,可能你後續的程式需要單獨處理這乙個小區域,如圖所示 如上圖所示,就是roi的乙個例子,如果你對影象設定了roi,那麼,opencv的大多數函式只在該roi區域內運算 只處理該roi區域 如果沒設r...
python環境下OpenCV的基本操作
如下操作可實現將png格式的轉化成jpg格式的影象,括號中的內容可為絕對路徑,如 windows下c users mypic.png unix環境下 home joe mypic.png。import cv2 image cv2.imread mypic.png cv2.imwrite mypic....