0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_78858299 来源:小白玩转Python 作者:二旺 2023-02-07 16:23 次阅读

膨胀

膨胀被用来增加图像中边缘的大小。首先,我们定义了奇数(5,5)的核矩阵大小。然后使用内核,我们对图像执行膨胀。下面我们对 Canny 算子的输出图像进行了膨胀。

语法

kernel = np.ones((5,5),np.uint8) ## DEFINING KERNEL OF 5x5
imgDialation = cv2.dilate(imgCanny,kernel,iterations=1) ##DIALATION

腐蚀

侵蚀与膨胀正好相反。该算法用于减小图像中边缘的大小。首先,我们定义了奇数(5,5)的核矩阵大小。然后使用内核,我们对图像执行腐蚀。下面我们对 Canny 算子的输出图像进行腐蚀处理。

kernel = np.ones((5,5),np.uint8) ## DEFINING KERNEL OF 5x5
imgDialation = cv2.erode(imgCanny,kernel,iterations=1) ##EROSION

现在,在同一个程序中使用上述基本函数处理 Monalisa 图像。

绘制不同的形状

我们可以使用 OpenCV 绘制不同的形状,像矩形,圆形,线等。

长方形:

要在图像上绘制一个矩形,我们使用 cv2.rectangle 函数。在函数中,我们将宽度、高度、 x、 y、 RGB 中的颜色、深度作为参数传递。

语法

cv2.rectangle(img,(w,h),(x,y),(R,G,B),THICKNESS)
w: width
h: height
x: distance from x axis
y: distance from y axis
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.rectangle(img,(100,300),(200,300),(255,0,255),2)

圆形:

为了绘制一个圆形,我们使用 cv2.circle 函数。我们传递 x,y,半径大小,RGB 颜色,深度作为参数。

语法

cv2.circle(img,(x,y),radius,(R,G,B),THICKNESS)
x: distance from x axis
y: distance from y axis
radius: size of radius(integer)
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.circle(img,(200,130),90,(255,255,0),2)

直线:

要绘制一条直线,我们使用 cv2.line 函数传递起始点(x1,y1)、终点(x2,y2)、 RGB 格式的颜色、深度作为参数。

语法

cv2.line(img,(x1,y1),(x2,y2),(R,G,B),THICKNESS)x1,y1: start point of line (integer)
x2,y2: end point of line (integer)
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.line(img,(110,260),(300,260),(0,255,0),3)

在图像上写文字

在 OpenCV 中,我们有一个函数 cv2.puttext,用于在特定位置在图像上写入文本。它以图像、文本、 x、 y、颜色、字体、字号、粗细作为输入参数。

语法

cv2.putText(img,text,(x,y),FONT,FONT_SCALE,(R,G,B),THICKNESS)
img: image to put text on
text: text to put on image
X: text distance from X axis
Y: text distance from Y axis
FONT: Type of FONT (ALL FONT TYPES)
FONT_SCALE: Scale of Font(Integer)
R,G,B: color in RGB form (255,255,0)
THICKNESS: thickness of rectangel(integer)Example
cv2.putText(img,"HELLO",(120,250),cv2.FONT_HERSHEY_COMPLEX,1,(255,255,255),2)

检测和裁剪人脸

人脸检测在人脸识别系统中非常有用。在 OpenCV 中,我们有许多预先训练的 haar 级联分类器可用于不同的任务。以下网址可以查看 OpenCV GitHub 上的分类器列表:https://github.com/opencv/opencv/tree/master/data/haarca

scades。

我们使用 haarcascade_frontalface_default.xml 分类器来检测图像中的人脸。它将返回图像的四个坐标(w,h,x,y)。使用这些坐标,我们要在脸上画一个矩形,然后使用相同的坐标,继续裁剪人脸。最后使用 imwrite,把裁剪后的图像保存到目录中。

import cv2
# Load the cascade
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')# Read the input image
img = cv2.imread('images/img0.jpg')# Convert into grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# Detect faces
faces = face_cascade.detectMultiScale(gray, 1.3, 4)# Draw rectangle around the faces
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
    # Cropping Face
    crop_face = img[y:y + h, x:x + w]
    #Saving Cropped Face
    cv2.imwrite(str(w) + str(h) + '_faces.jpg', crop_face)
cv2.imshow('img', img)
cv2.imshow("imgcropped",crop_face)
cv2.waitKey()

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C++
    C++
    +关注

    关注

    20

    文章

    1983

    浏览量

    72817
  • 计算机视觉
    +关注

    关注

    8

    文章

    1459

    浏览量

    45358
  • opencv
    +关注

    关注

    29

    文章

    542

    浏览量

    40427
收藏 人收藏

    评论

    相关推荐

    LabVIEW+Python+openCV

    PythonopenCV工具包,绝对开源和免费,LabVIEW可以利用Python节点调用PythonopenCV工具包同样实现视觉任务和复杂的功能,正在学习和整理中,为大家提供多一种可能
    发表于 12-07 20:59

    播放视频_OpenCV3版书本配套示例程序06

    OpenCV3编程入门》OpenCV3版书本配套示例程序06,使用VideoCapture类进行视频读取和播放。
    发表于 06-06 15:20 3次下载

    边缘检测综合示例_OpenCV3版书本配套示例程序60

    OpenCV3编程入门》书本配套源代码:边缘检测综合示例,边缘检测综合示例——Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑。
    发表于 06-06 15:25 5次下载

    仿射变换综合示例_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:仿射变换综合
    发表于 06-06 15:39 5次下载

    实现多种重映射综合示例_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:实现多种重映射综合
    发表于 06-06 15:39 4次下载

    漫水填充算法综合示例_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:漫水填充算法综合
    发表于 06-06 15:39 2次下载

    形态学图像处理综合示例_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:形态学图像处理综合
    发表于 06-06 15:52 8次下载

    图像滤波综合示例_《OpenCV3编程入门》书本配套源代码

    OpenCV3编程入门》书本配套源代码:图像滤波综合
    发表于 06-06 15:52 6次下载

    OpenCV3编程入门-源码例程全集-resize函数用法示例

    OpenCV3编程入门-源码例程全集-resize函数用法
    发表于 09-18 16:38 2次下载

    OpenCV3编程入门-源码例程全集-sobel函数用法示例

    OpenCV3编程入门-源码例程全集-sobel函数用法
    发表于 09-18 16:38 1次下载

    OpenCV3编程入门-源码例程全集-remap函数用法示例

    OpenCV3编程入门-源码例程全集-remap函数用法
    发表于 09-18 16:38 0次下载

    OpenCV3编程入门-源码例程全集-pyrUp函数用法示例

    OpenCV3编程入门-源码例程全集-pyrUp函数用法
    发表于 09-18 16:38 0次下载

    60重要的Python示例

    重要的Python
    发表于 10-26 09:29 371次阅读

    OpenCV常用7 示例Python版)1

    OpenCV是计算机视觉领域最流行的库之一。它最初是用 C 和 C++ 编写的。现在也可以在 Python 中使用。它最初是由英特尔开发的。该库是一跨平台的开源库。免费使用。OpenCV 库是一高度优化的库,其主要重点是实时应用程序。
    的头像 发表于 02-07 16:23 737次阅读

    OpenCV常用7 示例Python版)2

    OpenCV是计算机视觉领域最流行的库之一。它最初是用 C 和 C++ 编写的。现在也可以在 Python 中使用。它最初是由英特尔开发的。该库是一跨平台的开源库。免费使用。OpenCV 库是一高度优化的库,其主要重点是实时应用程序。
    的头像 发表于 02-07 16:23 579次阅读