OpenCV常用的 7 个示例(Python版)2

电子说

1.2w人已加入

描述

缩放和裁剪图像

缩放是一个改变图像形状的过程。在 Opencv,我们可以使用 resize 函数来调整图像的形状。

语法

cv2.resize(IMG,(WIDTH,HEIGHT))
IMG: image which we want to resize
WIDTH: new width of the resize image
HEIGHT: new height of the resize image


Example
cv2.resize(img,(224,224))

要调整图像的大小,我们首先需要知道图像的形状。我们可以利用 shape 找到图像的形状,然后根据当前图像的形状,我们可以增大或减小图像的大小。让我们举个例子来看看。

import cv2
img = cv2.imread("images/img0.jpg") ##Choose any image
print(img.shape)
imgResize = cv2.resize(img,(224,224)) ##Decrease size
imgResize2 = cv2.resize(img,(1024,1024)) ##Increase size
cv2.imshow("Image",img)
cv2.imshow("Image Resize",imgResize)
cv2.imshow("Image Increase size",imgResize2)
print(imgResize.shape)
cv2.waitKey(0)

如果您不想把图像宽度和高度写死,您也可以根据现有的形状,然后根据比例改变图像的宽度和高度。

import cv2
img = cv2.imread("images/img0.jpg") ##Choose any image
print(img.shape)
shape = img.shape
imgResize = cv2.resize(img,(shape[0]//2,shape[1]//2))##Decrease size
imgResize2 = cv2.resize(img,(shape[0]*2,shape[1]*2)) ##Increase size
cv2.imshow("Image",img)
cv2.imshow("Image Resize",imgResize)
cv2.imshow("Image Increase size",imgResize2)
print(imgResize.shape)
cv2.waitKey(0)

裁剪图像

裁剪是获取部分图像的过程。在 OpenCV 中,我们可以通过定义裁剪后的矩形坐标来执行裁剪。

语法

imgCropped = img[y1:y2, x1:x2](x1,y1): top-left vertex
(x2,y2): bottom-right vertex


Example
imgCropped = img[0:100,200:200]

使用裁剪方法,让我们尝试从图像中提取 Monalisa 的脸。

import cv2
img = cv2.imread("images/img0.jpg")
imgCropped = img[50:250,120:330]
cv2.imshow("Image cropped",imgCropped)
cv2.imshow("Image",img)
cv2.waitKey(0)

您还可以使用绘画模式来查找(x1,y1)、(x2,y2)的正确坐标。

这里有个小任务:

任务 :右键单击图像并保存它; 尝试从图像中获取国王卡。

提示 :使用绘画模式找到正确的坐标,最后,使用调整大小,以增加裁剪图像的大小。

使用函数的基本图像滤波器

我们可以在图像上使用许多基本的滤波器,比如将图片转换成灰度、模糊等等。

从 Img 到 gray

为了将图像从彩色图像转换为灰度图像,我们可以使用函数 cv2.cvtColor,在这里我们传递 cv2.COLOR_BGR2GRAY 作为参数。

语法

imgGray = cv2.cvtColor(IMG,cv2.CODE)
IMG: Original image
CODE: Conversion code for Gray(COLOR_BGR2GRAY)


Example
imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

从 Img 到 HSV

为了将图像转换为 HSV 颜色空间,我们可以使用函数 cv2.cvtColor,这里我们传递 cv2.COLOR_BGR2HSV 作为参数。它主要用于目标跟踪。

语法

imgGray = cv2.cvtColor(IMG,cv2.CODE)
IMG: Original image
CODE: Conversion code for Gray(COLOR_BGR2HSV)


Example
imgHsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

模糊图像

模糊用于去除图像中的噪声,也称为平滑。它是对图像应用低通滤波器的过程。在 OpenCV 中对图像进行模糊,我们常用 GaussianBlur。

语法

imgBlur = cv2.GaussianBlur(img,(sigmaX,sigmaY),kernalSize)


kernalsize − A Size object representing the size of the kernel.
sigmaX − A variable representing the Gaussian kernel standard deviation in X direction.
sigmaY - same as sigmaX


Exmaple
imgBlur = cv2.GaussianBlur(img,(3,3),0)

边缘检测

在 OpenCV 中,我们使用 Canny算子来检测图像中的边缘。也有不同的边缘检测器,但最著名的是 Canny算子。Canny算子边缘检测是一种边缘检测算子,它使用多级算法来检测图像中的大范围边缘,是由 John F. Canny 在1986年提出的。

语法

imgCanny = cv2.Canny(img,threshold1,threshold2)


threshold1,threshold2:Different values of threshold different for every images


Example
imgCanny = cv2.Canny(img,100,150)
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分