OpenCV之图像梯度(笔记11)
Posted 月疯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV之图像梯度(笔记11)相关的知识,希望对你有一定的参考价值。
编程代码:
import numpy as np
import matplotlib.pyplot as plt
import cv2
#图像梯度
def show(image):
plt.imshow(image)
plt.axis('off')
plt.show()
def imread(image):
image=cv2.imread(image)
#把图像的BGR转换成RGB
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
return image
image=imread('im.jpg')
def gradient(image):
image=cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)
#cv2.CV_64F输出图像的深度(数据类型),64位float类型,因为梯度可能是正也可能是负
laplacian=cv2.Laplacian(image,cv2.CV_64F)
#1,0表示在x方向求一阶导数,最大可以求2阶导数
sobelx = cv2.Sobel(image,cv2.CV_64F,1,0,ksize=3)
# 1,0表示在y方向求一阶导数,最大可以求2阶导数
sobely = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3)
titles=['Original','Laplacian','SobelX','SobelY']
images=[image,laplacian,sobelx,sobely]
plt.figure(figsize=(10,5))
for i in range(4):
plt.subplot(2,2,i+1)
plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.axis('off')
plt.show()
gradient(image)
效果展示:
以上是关于OpenCV之图像梯度(笔记11)的主要内容,如果未能解决你的问题,请参考以下文章