膨胀
膨胀被用来增加图像中边缘的大小。首先,我们定义了奇数(5,5)的核矩阵大小。然后使用内核,我们对图像执行膨胀。下面我们对 canny 算子的输出图像进行了膨胀。
语法
kernel = np.ones((5,5),np.uint8) ## defining kernel of 5x5imgdialation = cv2.dilate(imgcanny,kernel,iterations=1) ##dialation腐蚀
侵蚀与膨胀正好相反。该算法用于减小图像中边缘的大小。首先,我们定义了奇数(5,5)的核矩阵大小。然后使用内核,我们对图像执行腐蚀。下面我们对 canny 算子的输出图像进行腐蚀处理。
kernel = np.ones((5,5),np.uint8) ## defining kernel of 5x5imgdialation = 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: widthh: heightx: distance from x axisy: distance from y axisr,g,b: color in rgb form (255,255,0)thickness: thickness of rectangel(integer)examplecv2.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 axisy: distance from y axisradius: size of radius(integer)r,g,b: color in rgb form (255,255,0)thickness: thickness of rectangel(integer)examplecv2.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)examplecv2.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 ontext: text to put on imagex: text distance from x axisy: text distance from y axisfont: 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)examplecv2.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 cascadeface_cascade = cv2.cascadeclassifier('haarcascade_frontalface_default.xml')# read the input imageimg = cv2.imread('images/img0.jpg')# convert into grayscalegray = cv2.cvtcolor(img, cv2.color_bgr2gray)# detect facesfaces = face_cascade.detectmultiscale(gray, 1.3, 4)# draw rectangle around the facesfor (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()
累计出货量超2亿片!移远通信携产业合作伙伴引领5G物联网未来
浅析全球射频功率放大器专利申请状况
Meta和LG开发新款Quest Pro头显,与苹果Vision Pro竞争
踏歌智行荣登2023年锐公司榜单
MAX6615, MAX6616 业内双通道温度监视器与风扇
OpenCV常用的 7 个示例(Python版)3
断电可以用排水泵和逆变器吗,添加电池组
荣耀即将获售高通芯片
缓存的原理/作用/使用的场景/方法
中国红太美!同样都是OPPO R9s为什么一比较差距这么大呢?
5G不仅仅是下一代通信网络技术也将成为产业互联的基础设施
EMI电磁屏蔽-主要材料简介
AD522集成数据采集放大器的功能特性和典型应用设计分析
微雪电子mega128开发板简介
解读半导体对物联网的重要意义
锂电池即将被银锌电池取代于笔记本
eclipse怎么运行java项目
虫情信息自动采集系统是什么,它的作用是什么
多款导热材料全方面支持智能穿戴设备解决技术方案
研究人员从昆虫大脑中发现用于3D视觉的神经元