一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 深入學習Python+Opencv常用四種圖像處理操作

深入學習Python+Opencv常用四種圖像處理操作

2022-03-10 00:05Rainbowman 0 Python

本文主要介紹了深入學習Pytho+OpenCV實現的基本圖像處理操作,例如:改變圖像大小,圖片色彩轉換,圖片模糊等,代碼具有一定的學習價值,感興趣的小伙伴可以關注一下

opencv圖像處理(深度學習中常用的)

改變色彩空間: cv.cvtColor()

cv.cvtColor(img, flag)

  • img:原圖像
  • flag:要改變的類型

常用的flag有:cv.COLOR_BGR2GRAY (BGR->GRAY)、cv.COLOR_BGR2HSV

img = cv.imread(r'E:\0_postgraduate\test.jpg')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('img', img)
cv.imshow('img_gray', gray)
k = cv.waitKey(0)
if k & 0xFF == ord('q'):
  cv.destroyAllWindows()

深入學習Python+Opencv常用四種圖像處理操作

我們可以看看flag都有哪些:

flags = [i for i in dir(cv) if i.startswith('COLOR_')]
print( flags )

 

改變圖像大小:cv.resize()

cv.resize(img, (width, height))

  • img:原始圖像
  • width:縮放后圖像的寬度
  • height:縮放后圖像的高度
img = cv.imread(r'E:\0_postgraduate\test.jpg')
img_resize = cv.resize(img, (500, 600))
cv.imshow('img shape: {} x {}'.format(img.shape[1], img.shape[0]), img)
cv.imshow('img_resize shape: {} x {}'.format(img_resize.shape[1], img_resize.shape[0]), img_resize)
k = cv.waitKey(0)
if k & 0xFF == ord('q'):
  cv.destroyAllWindows()

深入學習Python+Opencv常用四種圖像處理操作

比如某些網絡要求輸入的圖像必須是固定大小的:256 x 256這么大的,這時就可以用cv.resize()對大小不一的圖像進行縮放。

 

二維卷積操作

cv.filter2D()+軌跡條動態控制圖像參數:cv.createTrackbar()、cv.getTrackbarPos()

卷積操作是什么這里就不再介紹了。

cv.filter2D(img, -1, kernel)

  • img:原始圖像
  • -1:這個參數應該是輸出圖像,沒什么用,填-1就行
  • kernel:卷積核,一個二維數組

而至于cv.createTrackbar()、cv.getTrackbarPos(),這兩個函數可以很方便的動態調節圖像的參數,很直觀地看到調節的效果:

cv.createTrackbar()

第一個參數是軌跡欄名稱

第二個參數是它所屬的窗口名稱,

第三個參數是默認值,

第四個參數是最大值,

第五個參數是執行的回調函數每次軌跡欄值都會發生變化,即每次滑動軌跡條時都會調用該參數。

cv.getTrackbarPos()

第一個參數是滑動條名字,

第二個時所在窗口,

返回值是滑動條的數值

# cv.createTrackbar() 和 cv.getTrackbarPos()測試

def nothing(*arg):
  pass

img = cv.imread(r'E:\0_postgraduate\test.jpg')
img_original = img
cv.namedWindow('image_test')
cv.createTrackbar('kernel_width', 'image_test', 1, 30, nothing)
cv.createTrackbar('kernel_height', 'image_test', 1, 30, nothing)
while 1:
  w = cv.getTrackbarPos('kernel_width', 'image_test')
  h = cv.getTrackbarPos('kernel_height', 'image_test')
  print('w: {} h: {}'.format(w, h))
  if(w!=0 and h!=0):
      kernel = np.ones((w, h), np.float32)/(w*h)
      img = cv.filter2D(img_original, -1, kernel)
      cv.imshow('image_test', img)
  else:
      cv.imshow('image_test', img_original)
  k = cv.waitKey(5)
  if k & 0xFF == ord('q'):
      break
cv.destroyAllWindows()
  

深入學習Python+Opencv常用四種圖像處理操作

深入學習Python+Opencv常用四種圖像處理操作

深入學習Python+Opencv常用四種圖像處理操作

 

常用模糊

常用的模糊有平均化模糊:cv.blur()和高斯模糊:cv.GaussianBlur()

(1) cv.blur()

平均化模糊cv.blur()就是讓原始圖像與一個全1的卷積核做卷積,然后將得到的值除以卷積核中像素的總個數,這么說太繞了,直接上圖:

比如我選的卷積核為3x3大小,則原始圖像要與如下的卷積核做卷積:

深入學習Python+Opencv常用四種圖像處理操作

cv.blur(img, (weight, height))

  • img:原始圖像
  • weight:卷積核的寬
  • height:卷積核的長

(2) cv.GaussianBlur()

高斯模糊是在平均化模糊基礎上的改進,考慮了距離對于中心像素的影響:與中心像素距離越近的像素擁有越高的權重,其實超級簡單。高斯模糊的原理可以參考:python實現高斯模糊及原理詳解

cv.GaussianBlur(img, (weight, height), sigmaX, sigmaY)

  • img:原始圖像
  • weight:卷積核的寬
  • height:卷積核的長
  • sigmaX:二維高斯函數x的偏差
  • sigmaY:二維高斯函數y的偏差

注意:

核的寬度和高度,應該是正數和奇數。我們還應該指定X和Y方向的標準偏差,分別為sigmaX和sigmaY。如果只指定sigmaX,sigmaY將被視為與sigmaX相同。如果兩者都是零,則根據核大小計算。高斯模糊對去除圖像中的高斯噪聲非常有效。

img = cv.imread(r'E:\0_postgraduate\test.jpg')
img_blur = cv.blur(img, (5,5))
img_gaussian = cv.GaussianBlur(img, (5,5), 0)
cv.imshow('image_blur', img_blur)
cv.imshow('image_gaussian', img_gaussian)
k = cv.waitKey(0)
if k & 0xFF == ord('q'):
  cv.destroyAllWindows()

深入學習Python+Opencv常用四種圖像處理操作

到此這篇關于深入學習Python+Opencv常用四種圖像處理操作的文章就介紹到這了,更多相關Python Opencv 圖像處理內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_44166630/article/details/121581548

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人免费公开视频 | 日韩精品欧美国产精品亚 | xxxxx性13一14| 成人午夜视频一区二区国语 | 亚洲大逼 | 乌克兰13一14娇小 | 九九热免费在线观看 | 色花堂中文字幕98堂网址 | 亚洲网站在线看 | 免费看日产一区二区三区 | 女人张开腿让男人桶爽 | 亚洲欧洲日产国码天堂 | 波多野结中文字幕在线69视频 | 日本高清色视影www日本 | 欧美黑人成人免费全部 | 欧美特黄aaaaaa| 国产精品边做边接电话在线观看 | 亚洲精品短视频 | 福利国产片 | 免费观看一级特黄三大片视频 | 日本艳鉧动漫1~6在线观看 | 乌克兰黄色录像 | 久久这里只有精品国产精品99 | 国产精品国产色综合色 | 久久国产精品高清一区二区三区 | 国产精品免费aⅴ片在线观看 | 男人的天堂视频在线 | 色先锋影音资源 | 成人特级毛片69免费观看 | 侮辱丰满美丽的人妻 | 亚洲狼人综合干 | 视频一区精品 | 国产精品久久久久久久午夜片 | 亚洲一区二区三区福利在线 | 丝瓜视频看污片 | 免费一级国产生活片 | 扒开女人屁股眼看个够 | 精品亚洲综合久久中文字幕 | 亚洲天堂网在线观看视频 | 欧美男同videos | 免费一级片在线 |