欢迎阅读 OpenCV 指南—第2部分

本文是 OpenCV 教程的第二部分,深入探讨高级功能,包括边缘检测(Canny、拉普拉斯、Sobel)、轮廓检测、颜色空间转换、图像模糊和位运算。通过实例展示了如何使用 OpenCV 进行这些操作,并解释了不同方法的效果和用途。
摘要由CSDN通过智能技术生成

在上篇文章中,我们已经学习了 OpenCV 的基础知识。我们已经看到了如何执行图像和视频调整大小、裁剪等,这是 OpenCV 教程的第二部分。

本文,我们主要关注 OpenCV 的高级部分,它将涵盖以下提到的问题。但是,如果你是 OpenCV 的新手或觉得这很难理解,那么请访问OpenCV 基础指南第1部分并复习基础知识,然后再回到此文。

https://mp.weixin.qq.com/s/cy47czfnMA1QnNxCt2AHBQ

我们思考的问题是:

如何在图像中进行边缘检测?

如何在图像中进行轮廓检测?

如何在图像中执行颜色空间?

如何处理颜色通道?

如何模糊图像?

如何使用位运算符?

如何在图像的每个像素点绘制颜色的直方图?

1)如何在图像中进行边缘检测?

1.1. Canny:

对于这里的边缘检测,我们将使用 cv.Canny 方法。

输入图像为原始图像,thereshold-1 即像素值低于150 被视为非边缘,threshold-2 即像素值高于175 被视为有效边缘。如果该值在 150 和 175 之间,那么如果边缘像素与有效边缘相连,则仅将其视为有效边缘。

original_img=cv.imread("/content/drive/MyDrive/Colab Notebooks/Opencv/NCS/hana-lshin-qUhu8zjm38w-unsplash(1).jpg")
cv2_imshow(original_img)

print("\n \n Edge detection in the Original images\n \n ")
#We will find the edges in the image as below
Edge_Org=cv.Canny(original_img,150,175)
cv2_imshow(Edge_Org)

上述代码的输出:

原图:

原始图像的边缘:

现在我们将尝试通过使其模糊来找到原始图像的边缘。

博客中进一步介绍了如何使图像模糊。

通过比较原始图像和模糊图像之间的边缘检测。我们知道图像中的边缘检测随着图像模糊程度的增加而减少。

1.2. 拉普拉斯算子

在拉普拉斯边缘检测方法中,我们将计算源图像的 (x,y) 像素的第二个梯度。

当 ksize>1 时,查看下面提到的源图像的拉普拉斯公式:

当 ksize=1 时,拉普拉斯算子是通过使用以下 3×3 孔径过滤图像来计算:

其中 ksize:用于计算二阶导数滤波器的孔径大小。大小必须是正数和奇数。

lap=cv.Laplacian(original_img,cv.CV_64F)
lap=np.uint8(np.absolute(lap))
cv2_imshow(lap)

上述代码的输出:

拉普拉斯边缘检测:

1.3.Sobel边缘检测

在计算拉普拉斯算子时,我们计算了称为 Sobel 的二阶导数。因此,在 sobel 检测中,我们将计算 sobelx(也称为水平 Sobel 导数)和 sobely(也称为垂直 Sobel 导数)。

我们可以通过输入图像与大小为 3*3 的内核进行卷积,来计算 Sobelx 和 sobely(但我们可以根据需要更改内核大小)。

拉普拉斯公式中的 Sobelx 和 sobely:

提到的卷积的 3*3 矩阵是:

Sobel 边缘检测的代码:

#Sobel
Sobelx=cv.Sobel(Gray_1,cv.CV_64F,1,0)
Sobely=cv.Sobel(Gray_1,cv.CV_64F,0,1)
Cpmbine_Sobel=cv.bitwise_or(Sobelx,Sobely)
print("\n\n SobelX Edge Detection\n\n")
cv2_imshow(Sobelx)
print("\n\n Sobely Edge Detection\n\n")
cv2_imshow(Sobely)
print("\n\n ombine Sobel Edge Detection\n\n")
cv2_imshow(Cpmbine_Sobel)

上述代码的输出:

Sobelx:

Sobely:

结合Sobel:

1.4. 腐蚀和膨胀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值