cv2.fillConvexPoly填充多边形

举报
风吹稻花香 发表于 2021/06/04 23:37:56 2021/06/04
【摘要】   cv2.fillConvexPoly   往多边形内部填充值 先做边缘检测,把小的目标填上: contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) for num in range(len(contours)): if (c...

 

cv2.fillConvexPoly

 

往多边形内部填充值

先做边缘检测,把小的目标填上:


  
  1. contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
  2. for num in range(len(contours)):
  3. if (cv2.contourArea(contours[num]) < 200):
  4. print("fill")
  5. # cv2.drawContours(image, contours[num], -1, (0, 255, 0), 2)
  6. cv2.fillConvexPoly(thresh, contours[num], 255)
  7. if len(contours)>0:
  8. cv2.imshow("thresh2", thresh)

单通道的图可以:


  
  1. import numpy as np
  2. import cv2
  3. img = np.zeros((680, 920), np.uint8)
  4. triangle = np.array([[0, 0], [500, 800], [500, 400]])
  5. cv2.fillConvexPoly(img, triangle, 255)
  6. # cv2.fillConvexPoly(img, triangle, (255, 255, 255))
  7. cv2.imshow("'asdf",img)
  8. cv2.waitKey()

多通道也可以:

cv2.fillConvexPoly()函数可以用来填充凸多边形,只需要提供凸多边形的顶点即可.

我们来画一个三角形


  
  1. img = np.zeros((1080, 1920, 3), np.uint8)
  2. triangle = np.array([[0, 0], [1500, 800], [500, 400]])
  3. cv2.fillConvexPoly(img, triangle, (255, 255, 255))
  4. cv2.imshow("'asdf",img)
  5. cv2.waitKey(

cv2.fillPoly()

cv2.fillPoly()函数可以用来填充任意形状的图型.可以用来绘制多边形,工作中也经常使用非常多个边来近似的画一条曲线.cv2.fillPoly()函数可以一次填充多个图型.


  
  1. img = np.zeros((1080, 1920, 3), np.uint8)
  2. area1 = np.array([[250, 200], [300, 100], [750, 800], [100, 1000]])
  3. area2 = np.array([[1000, 200], [1500, 200], [1500, 400], [1000, 400]])
  4. cv2.fillPoly(img, [area1, area2], (255, 255, 255))
  5. cv2.imshow("asdf",img)
  6. cv2.waitKey()

 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/115253207

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。