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

缩放和裁剪图像
缩放是一个改变图像形状的过程。在 opencv,我们可以使用 resize 函数来调整图像的形状。
语法
cv2.resize(img,(width,height))img: image which we want to resizewidth: new width of the resize imageheight: new height of the resize imageexamplecv2.resize(img,(224,224))要调整图像的大小,我们首先需要知道图像的形状。我们可以利用 shape 找到图像的形状,然后根据当前图像的形状,我们可以增大或减小图像的大小。让我们举个例子来看看。
import cv2img = cv2.imread(images/img0.jpg) ##choose any imageprint(img.shape)imgresize = cv2.resize(img,(224,224)) ##decrease sizeimgresize2 = cv2.resize(img,(1024,1024)) ##increase sizecv2.imshow(image,img)cv2.imshow(image resize,imgresize)cv2.imshow(image increase size,imgresize2)print(imgresize.shape)cv2.waitkey(0)如果您不想把图像宽度和高度写死,您也可以根据现有的形状,然后根据比例改变图像的宽度和高度。
import cv2img = cv2.imread(images/img0.jpg) ##choose any imageprint(img.shape)shape = img.shapeimgresize = cv2.resize(img,(shape[0]//2,shape[1]//2))##decrease sizeimgresize2 = cv2.resize(img,(shape[0]*2,shape[1]*2)) ##increase sizecv2.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 vertexexampleimgcropped = img[0:100,200:200]使用裁剪方法,让我们尝试从图像中提取 monalisa 的脸。
import cv2img = 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 imagecode: conversion code for gray(color_bgr2gray)exampleimggray = cv2.cvtcolor(img,cv2.color_bgr2gray)从 img 到 hsv
为了将图像转换为 hsv 颜色空间,我们可以使用函数 cv2.cvtcolor,这里我们传递 cv2.color_bgr2hsv 作为参数。它主要用于目标跟踪。
语法
imggray = cv2.cvtcolor(img,cv2.code)img: original imagecode: conversion code for gray(color_bgr2hsv)exampleimghsv = 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 sigmaxexmapleimgblur = 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 imagesexampleimgcanny = cv2.canny(img,100,150)

一文读懂蓝牙网状网络什么是“友邻节点”与低功耗
2020年第三季度平板电脑市场出货量为4760万台
Redmi新机Redmi 8A将在本月正式亮相
TektronixTDS7104数字荧光示波器TDS7104
PADS Logic界面鼠标的使用介绍
OpenCV常用的 7 个示例(Python版)2
格雷码的编制规律
医疗可穿戴市场鱼龙混杂 核心技术尚待破局
表面贴装技术选择的问题研究
宁德时代在“储充检”领域的布局又进一步
单相异步电机外观不好看怎样处理呢?
IFA2015各大厂商智能手机现场评测汇总
iOS10.2正式版:漏洞汇总说明,看了别失望
思达科技冥王星一体化可靠性测试系统已开始接单出货
如何评估TI C2000系列微控制器程序的堆栈使用情况?
丰田能否掀起氢燃料电池的新浪潮?
国产PL系列脉冲电流源与2600系列源表有何区别?
回顾谷歌发布的雷达芯片,实现人机互动
美国制裁升级!英特尔、台积电、联想等大厂已断供俄罗斯,中国IC企业可获转单?
smt贴片加工对于焊剂化学特性的有何要求?