opencv进阶学习笔记10:图像金字塔和图像梯度
基礎版筆記傳送門:
python3+opencv學習筆記匯總目錄(適合基礎入門學習)
進階版筆記目錄鏈接:
python+opencv進階版學習筆記目錄(適合有一定基礎)
圖像金字塔
變小
變大
原理見基礎版鏈接,
基礎版圖像金字塔講解:
opencv學習筆記19:圖像金字塔和圖像拉普拉斯金字塔 (用于圖像放大和縮小)
向下取樣實現,變小
dst=cv2.pyrDown(src)
dst:取樣結果
src:原始圖像
拉普拉斯金字塔圖像金字塔
結果=原始圖像-先向下再向上
向下:尺寸變小
向上:尺寸變大
注意圖像尺寸必須是2的倍數,否則報錯
錯誤信息如下
圖像梯度
基礎講解
opencv學習筆記15: 梯度運算之sobel算子及其函數使用
opencv學習筆記16:梯度運算之scharr算子及其函數使用
opencv學習筆記17:梯度運算之laplacian算子及其應用
sobel算子理論
如圖,圖中紅色點區域,從頭發到皮膚。開先處于頭發區域,頭發是黑色,像素點,然后處于皮膚,像素相對較高,得到下列圖2,對圖2求取一階導師得到圖3,可以發現邊緣處導數最高。
一階導數就是做差的意思。
算子和為0
laplacian算子理論
算子和為0
sobel算子實現
import cv2 as cv import numpy as npdef sobel_demo(image):grad_x = cv.Scharr(image, cv.CV_32F, 1, 0)grad_y = cv.Scharr(image, cv.CV_32F, 0, 1)gradx = cv.convertScaleAbs(grad_x)#取絕對值,并轉到8位二進制格式grady = cv.convertScaleAbs(grad_y)cv.imshow("gradient-x", gradx)cv.imshow("gradient-y", grady)gradxy = cv.addWeighted(gradx, 0.5, grady, 0.5, 0)cv.imshow("gradient", gradxy)print("--------- Python OpenCV Tutorial ---------") src = cv.imread("daqiu.jpg") cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) cv.imshow("input image", src) sobel_demo(src) cv.waitKey(0) cv.destroyAllWindows()scharr算子是sobel算子的增強版本。無須再講,當sobel得到的邊緣不是很好時,考慮scharr算子。
laplacian算子實現
import cv2 as cv import numpy as npdef lapalian_demo(image):#dst = cv.Laplacian(image, cv.CV_32F)#lpls = cv.convertScaleAbs(dst)kernel = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]])dst = cv.filter2D(image, cv.CV_32F, kernel=kernel)lpls = cv.convertScaleAbs(dst)cv.imshow("lapalian_demo", lpls)print("--------- Python OpenCV Tutorial ---------") src = cv.imread("daqiu.jpg") cv.namedWindow("input image", cv.WINDOW_AUTOSIZE) cv.imshow("input image", src) lapalian_demo(src) cv.waitKey(0) cv.destroyAllWindows()說明代碼
#dst = cv.Laplacian(image, cv.CV_32F)#lpls = cv.convertScaleAbs(dst)等于
kernel = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]])dst = cv.filter2D(image, cv.CV_32F, kernel=kernel)lpls = cv.convertScaleAbs(dst)電氣專業的計算機萌新,寫博文不容易。如果你覺得本文對你有用,請點個贊支持下,謝謝。
總結
以上是生活随笔為你收集整理的opencv进阶学习笔记10:图像金字塔和图像梯度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12年爱唯欧不显示油耗,怎么调出来?
- 下一篇: 阿斯顿马丁db5价格???