python-opencv第五期:rectangle函数详解

这篇具有很好参考价值的文章主要介绍了python-opencv第五期:rectangle函数详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概要: 众嗦粥汁所周知,在如今计算机视觉(Computer Version short for CV)是人工智能与机器人技术发展的一个重大研究方向,而opencv作为一个专门为计算机视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究的内容。

            本期所要介绍的函数是opencv库中的函数——rectangle

            rectangle函数的主要作用是给指定的区域加上矩形边框,使图片即将要处理的目标区域可视化,这样就便于我们对要目标区域在处理时,有了一个同步的了解,便于我们在调试的同时查找问题所在。(双密码,双空间,工作生活分别存储,互不干扰。记住:跑得快不一定赢,不跌跟头才是成功。8***钛金rectangle)对于图片中某一区域的标识将会帮助我们更好地识别,我们将要处理或是已经处理完的部分,使得我们在进行图片识别与修正时有一个提前或同步的判别,是一个较为实用的工具。

            本期为了展示rectangle函数的目标框选的有效性与醒目性,我们将请出《饥荒联机版》中的全部可游玩角色(鱼妹和老奶奶还没买,你懂的,V我30,我带你们打龙蝇)来作为我们这次的测试素材嘉宾。我们将通过看到在合照中,他们分别被矩形框选的效果,来进一步学习rectangle函数的使用方法。话不多说,我是Kamen Black君,马上开始今天的学习,我已经等不及力

python-opencv第五期:rectangle函数详解

 正文部分:

python-opencv第五期:rectangle函数详解

print("祝大家每天快乐,love and peace!")

①使用准备:

与前几期一样,依旧是调用我们的工具人老伙伴----opencv,作为我们使用rectangle的大前提。

import cv2

②适用情况:

当对目标区域的位置存在疑惑,或者是需要对处理后的裁剪区域进行判别时,我们就可以使用rectangle函数来对图像中的某一区域来进行框选标识,来判断被框选的区域是否是我们想要的区域。

前者(存在疑惑)是对用户自我提前选定的区域进行验证,属于检验用户自我判别,rectangle函数表示范围选择的参数是用户自我给定的;

后者(裁剪判别)是对程序处理后的裁剪结果进行判别,属于检验程序运行结果,rectangle函数表示范围选择的参数是程序对图像进行处理之后的结果。

这两种情况都能够通过rectangle函数直观明了地展现在用户的面前,使得在之后调试的过程避免出现同样的问题。

(很好与优秀只差一点点距离,这段距离叫安全。错标会提醒,误识就报警,目标不忘带,错误不泄露。8***钛金rectangle)

③语法说明:

使用语法:cv2.rectangle (img, pt1, pt2, color, thickness, lineType, shift)

参数说明:img:我们要进行目标框选的源图像,三通道、单通道的图像都可以(大概吧);

                  pt1、pt2:我们选定的矩形在图像上的一条对角线的两个端点坐标(即矩形位于同一条对角线上两个顶点的坐标),用一个二值元组(x,y)的形式来进行表示(x表示列坐标,从左往右逐渐增大;y表示行坐标,从上往下逐渐增大)(在这里引一个流向大家介绍我的另一篇文章《python中参数与图片高度、宽度的对应关系》,这其中介绍了python中不同情况下,参数与图片高度、宽度的对应关系,有兴趣或是相关需求的小伙伴可以去看一下);

                  color:我们选择用来作为框选矩形的边框颜色,通常是一个三值元组,表示一个颜色RGB三通道的值(要注意:元组中三个值先后对应的是B通道、G通道、R通道,在RGB表中查询到的颜色要进行颠倒,才能得到我们原先想要的颜色);如果是灰度图的话,我们也可以选择亮度来表示边框的颜色;

                  thickness:我们选择的框选矩形的粗细情况,默认为1像素值,通常可以选择一个具体的整数进行表示(正数展示相应的像素值的线条宽度;负数,如cv2.FILLED则表示矩形将框选区域全部填满(黑化了bushi),可以用来将一些噪声从目标区域中祛除);

                  lineType:我们挑选的矩形边框的线条类型,可选择CV2.LINE_8(默认)(8连通)、CV2.LINE_4(4连通)、CV2.LINE_AA;如果指定为CV2.LINE_AA,则是使用高斯滤波器画反锯齿线,有着增加线条平滑性的效果(黄金比例立体切割,荷兰进口小牛皮,视网膜极致平滑,8***钛金rectangle)。一般情况下,或者说没有特殊需求时,我们其实不太用得到这个参数。对于lineType还有如下的文字说明:

The function line draws the line segment between pt1 and pt2 points in the image. The line is clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased lines are drawn using Gaussian filtering. To specify the line color, you may use the macro CV_RGB(r, g, b)

                  shift:我们选择的将矩形移动的程度,默认为0(即不操作),可以选择一个整数n,操作将使得pt1、pt2的坐标值都除以2^n。如选择1,即相当于将pt1、pt2的坐标值都除以2;如果选择的是2,则都除以4,即2^2。这个操作将使得用户可以仅通过一对固定的坐标值,就可以进行不同区域的框选,使之可以互相比较,抑或改变侧重,仿佛运筹帷幄。

成功并不是高瞻远瞩,而是你本来就站在高处,运筹帷幄,掌控未来,这才是8***,这才是胸怀天下。顶峰的目标,钛金的气概,真皮的情怀,让我们向成功的人生致敬,8***rectangle

下面另外附上rectangle函数相关说明的原生文档,以供参考:

def rectangle(img: Mat, pt1, pt2, color, thickness=..., lineType=..., shift=...)
from __doc__
    """
    'rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img  
    .  @brief Draws a simple, thick, or filled up-right rectangle.

    .  The function cv::rectangle draws a rectangle outline or a filled rectangle whose two opposite corners  
    .  are pt1 and pt2. 

 
    .  @param img Image.  
    .  @param pt1 Vertex of the rectangle. 
    .  @param pt2 Vertex of the rectangle opposite to pt1.  
    .  @param color Rectangle color or brightness (grayscale image). 
    .  @param thickness Thickness of lines that make up the rectangle. Negative values, like #FILLED,   
    .  mean that the function has to draw a filled rectangle.  
    .  @param lineType Type of the line. See #LineTypes  
    .  @param shift Number of fractional bits in the point coordinates.



    .  rectangle(img, rec, color[, thickness[, lineType[, shift]]]) -> img  
@overload 

    .  use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and r.br()-Point(1,1)` are opposite corners'
    """
    pass

④实例操作:

下面通过几个简单的操作,给大家呈现一下参数不同的情况下对图片框选结果的不同(饥荒人物见面会(bushi)):

1、蛋黄淡黄的头发的温蒂:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(65,48),(236,240),(170,234,242),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

python-opencv第五期:rectangle函数详解

2、脾气火爆(物理)的薇洛(不要问我为什么火女为什么没换装,要问,就是懒bushi):

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(835,32),(1044,245),(60,65,170),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

python-opencv第五期:rectangle函数详解

3、神经质知识渊博的图书管理员:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(400,14),(528,240),(117,172,124),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

python-opencv第五期:rectangle函数详解

4、胆小如鼠力大如牛的沃尔夫冈:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(243,447),(380,657),(65,129,190),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

python-opencv第五期:rectangle函数详解

5、老阴B伟大的魔术师——麦斯威尔:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(792,251),(920,451),(236,232,231),-1,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

python-opencv第五期:rectangle函数详解

 (哦,他去哪儿了?哦,原来,伟大的魔术师是会大变活人的,连自己也不在话下。大家如果有不认识的,可以看看前面的图。实际上主要是我不喜欢这个老阴B,如果不是因为这个老阴B,谁会来饥荒大陆这种破地方(我会bushi)

结语:本期中我们学习了rectangle函数,了解到opencv中如何使用rectangle来进行图像标记,使得我们可以判断被框选的区域是否是我们想要的区域,进行相应的自我验证或是对程序运行结果的判断。其实在opencv中还有其他的绘图函数,如line函数(线条)、circle函数(圆形)、ellipse函数(椭圆)、polylines函数(多边形)以及putText函数(文字),感兴趣的同学可以自己前去了解一下,实现的原理和rectangle其实都大同小异。

好了以上就是所有的内容,希望大家多多关注点赞收藏,这对我有很大的帮助。谢谢大家了!

python-opencv第五期:rectangle函数详解

好了,这里是Kamen Black君。祝国康家安,大家下次再见喽!!!溜溜球~~

python-opencv第五期:rectangle函数详解  

最后送给大家一句话:你,与众不同,你喜欢超越。你有梦想,你有力量,你从不把成就作为终点,记住,你的名字叫做:成功!8***钛金**文章来源地址https://www.toymoban.com/news/detail-451650.html

到了这里,关于python-opencv第五期:rectangle函数详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python-opencv第二期:imwrite函数详解

    概要:众 嗦粥之 所周知,在如今计算机视觉( Computer Version  short for CV)是人工智能与机器人技术发展的一个重大研究方向,而 opencv 作为一个专门为计算机视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究的内容。本文就将介绍其中一个较为基础的函数—

    2024年02月02日
    浏览(41)
  • Stage模型详解,UIability------Harmony OS 开发(第五期)

    如上图所示,蓝色框内就是代表一个模块, 一个工程下可以有n个模块,但只能有一个entry模块,即入口模块(核心),里面是该APP的主要功能 。模块分为两种类型: Ability Module和Library Module模块 ,前者是能力模块,用于实现对应的页面和功能,后者是共享模块,里面的功能和已经创

    2024年01月24日
    浏览(48)
  • python-opencv第七期:开运算与闭运算详解(上)

    目录 概要: 正文部分: 概念介绍:  何谓“开”与“闭”: 如何实现开运算与闭运算: 应用场景: 结语: 众 嗦粥汁 所周知,在如今计算机视觉( Computer Version  short for CV)是人工智能与机器人技术发展的一个重大研究方向,而 opencv 作为一个专门为机计算机视觉编程提供

    2024年02月04日
    浏览(35)
  • python-opencv之形态学操作(腐蚀和膨胀)原理详解

    Removing noise. Isolation of individual elements and joining disparate elements in an image. Finding of intensity bumps or holes in an image. 最基本的形态操作是侵蚀和扩张。让我们更详细地了解这些操作。 原理 它会侵蚀前景物体的边界,并从图像中移除小规模的细节,但同时会减少感兴趣区域的大小。

    2024年02月05日
    浏览(54)
  • 【i阿极送书——第五期】《Python机器学习:基于PyTorch和Scikit-Learn》

    作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍 📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪 大家

    2024年02月15日
    浏览(56)
  • python-opencv

    python_opencv安装使用笔记 链接: OpenCV——基于Python开发的OpenCV安装教程 链接: Python使用pip安装库时WARNING: You are using pip version 21.3.1; however, version 22.3.1 is available.的解决办法 链接: Opencv中的图像相加,相减,相除,相乘(python实现) 链接: opencv-python识别魔方特定颜色方块,并输

    2024年02月01日
    浏览(48)
  • HarmonyOS云开发基础认证题目记录——包括第一期:Serverless基础、第二期:快速构建用户认证系统、第三期:云函数入门指南、第四期:云数据库入门指南、第五期:云存储入门指南。

    1. 【判断题】  应用架构的演进依次经历了微服务架构、单体架构、Serverless架构等阶段。 错误 2. 【判断题】  认证服务手机号码登录需要填写国家码。 正确 3. 【判断题】  认证服务在绑定微信账号后就不能再绑定QQ账号了。 错误 4. 【判断题】  云函数可以根据函数的实际

    2024年02月05日
    浏览(117)
  • python-opencv划痕检测

    这次实验,我们将对如下图片进行划痕检测,其实这个比较有难度,因为清晰度太差了。 我们做法如下: (1)读取图像为灰度图像,进行自适应直方图均衡化处理,增强图片对比度 (2)然后进行三次图像去噪 - 高斯滤波 (3)然后我们再进行一次直方图均衡操作增强图片

    2024年02月03日
    浏览(44)
  • 【python-opencv】硬币检测

    使用 python3.8.x,opencv 使用图像处理技术,从照片中识别硬币的个数,并判断总价值。 使用颜色特征,识别出5角硬币 使用半径大小,判断出1角和1元硬币。 具体操作 将图片转换为HSV颜色模型 部分代码 提取轮廓信息 cv2.findContours() 拟合椭圆,提取ROI cv2.fitEllipse() 模板匹配 cv

    2024年02月02日
    浏览(44)
  • 零基础html学习-第五期

    好久不见,兄弟们。我又回来继续更blog了! 博主主页:GUIDM 收入专栏:零基础HTML学习   tr:行 td:列 th:表头单元格,内部文本加粗并居中显示。 表格table属性 border:定义线条的粗细 width:定义表格的总宽度 height:定义表格的总高度 cellspacing:定义单元格之间的距离 cellpad

    2023年04月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包