整体注意坐标点必须都是int

画多边形的坐标点注意,

可以同时画多个独立的多边形,一个或多个多边形的坐标点放在一个或多个numpy的数组中,而这个数组需要放入一维list中,但即使只有一个numpy的坐标点数组也必须有一个list框,下面第一行

cv2.polylines(Img,[points_arr],2,(0,0,255))
cv2.polylines(Img,[points_arr,points_arr1],2,(0,0,255))

填充多边形

参考:http://t.zoukankan.com/Ph-one-p-12082692.html

cv2.polylines

import cv2
import numpy as np
img=np.zeros((500,750,3),np.uint8)
points_arr = np.array([100,100,200,200,300,200,400,100],np.int).reshape(4,1,2)
print(points_arr)
Img = cv2.polylines(img,[points_arr], (0,0,255)) # 最后的参数是作图的颜色bgr
cv2.imshow('img',Img)
cv2.waitKey(0)

cv2.fillConvexPoly

Img = cv2.fillConvexPoly(img,[points_arr], (0,0,255))

两个区别

两个的函数的参数必须是numpy的数组。

>cv2.fillPoly()函数可以用来填充任意形状的图型,可以一次填充多个图型.
>cv2.fillPoly()填充的点矩阵放入[]中,而另一种不用
>cv2.fillConvexPoly()函数==‘只能’==用来填充凸多边形,但实验时发现两种方式都能画任意多边形
import cv2
import numpy as np
img=np.zeros((500,750,3),np.uint8)
# cv2.line(img,(10,10),(200,200),(0,255,0),8)#绿色,3个像素宽度
# points_arr = np.array([[100,100],[200,100],[200,200],[170,130]])
points_arr = np.array([[100,0],[75,75],[0,100],[75,125],[100,200],[125,125],[200,100],[125,75]])
cv2.fillConvexPoly(img,points_arr, (0,0,255))
# cv2.fillPoly(img,[points_arr],(0,0,255))
# Img = cv2.polylines(img,[points_arr], 2,(0,0,255))
cv2.imshow('ing',img)
cv2.waitKey(0)

cv2作图cv2.polylines,cv2.fillPoly,cv2.fillConvexPoly多边形时需要注意的地方相关推荐

  1. cv2 画多边形不填充_OpenCV python: 任意多边形填充和凸多边形填充(fillPoly和fillConvexPoly的区别,有图有真相!)...

    我们经常会使用contour或者自己圈出来的区域填上对应的值或者,所以经常会使用这样两个函数:fillPoly和fillConvexPoly,至于这两个函数有什么区别呢?小伙伴从题目中就可以看出来了, ...

  2. opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。

    opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径 定义函数: cv2_imread(path)代替cv2.imread() cv2_im ...

  3. 【图像处理】——灰度变换心得(cv2.normalize规范化值0-255,cv2.convertScaleAbs(new_img)转为8位图)

    目录 一.灰度变换函数 对数变换 加码变换 常见雷点 常见灰度变换函数 两个函数cv2.normalize,cv2.convertScaleAbs(new_img) 一.灰度变换函数 Python图像 ...

  4. OpenCV二值化--cv2.threshold()函数、cv2.adaptiveThreshold()函数

    @[toc] 目录 1.cv2.threshold()函数 2.cv2.adaptiveThreshold()函数 3.3.什么时候用cv2.adaptiveThreshold()函数 一.cv2.t ...

  5. opencv python 图像测试上采样(升采样)(cv2.pyrUp()) 下采样(cv2.pyrDown()) 池化 滑动窗口(BorderTypes)

    文章目录 `from cv2.__init__.py` 示例1:给图片执行两次下采样 示例2:给图片重复100次上下采样 在学习tensorflow卷积神经网络时,需要实现图像的下采样,于是便想手动实 ...

  6. cv2.imread读取图像结果none_python cv2.imread 读取中文路径的图片返回为None的问题

    此篇文章首发于我的csdn博客,见原文链接. 使用cv2读取图片是常见的事情,但如果,输出图片形状大小时出现报错" 'NoneType' object has no attribute sh ...

  7. opencv和pytorch中的warp操作函数:cv2.warpAffine, torch.nn.functional.grid_sample, cv2.warpPerspective

    关于图像的warp操作是指利用一个旋转缩放矩阵对图像进行操作. 常见的操作有,平移,绕某个点旋转,缩放. opencv中有getRotationMatrix2D,warpAffine, getAffi ...

  8. origin作图所用数据点太多,做图时需要跳过数个数据给一个标记的方法

    当做好图后,对需要修改的曲线双击,然后在droplines 里将skip points 数目增大即可.

  9. cv2.fillConvexPoly填充多边形

    cv2.fillConvexPoly 往多边形内部填充值 先做边缘检测,把小的目标填上: contours, hierarchy = cv2.findContours(thresh, cv2.RETR ...

最新文章

  1. 恕我直言,有了这款IDEA插件,你可能只需要写30%的代码...
  2. 最近的生活[发点牢骚]
  3. MySQL中的组合索引
  4. socket 中 SOCK_STREAM 和 SOCK_DGRAM的区别?
  5. css --- 使用scss生成常用的基本css样式
  6. pyqt5设置dialog的标题_PyQt5快速上手基础篇7-弹出dialog
  7. 数据结构—单链表(类C语言描写叙述)
  8. (一)netty介绍
  9. bcd转ascii码 流程图_4-20mA转RS485,MODBUS数据采集模块
  10. 从没见过干净图片,英伟达AI就学会了去噪大法 | ICML论文
  11. 流API--流的映射
  12. memcached 可视化客户端工具TreeNMS
  13. 计算两经纬度坐标间的距离
  14. Python语音识别终极指北,没错,就是指北!
  15. MSP430X1XX系列ADC12和DMA详解(附带程序)(上)--ADC12详解与源码
  16. [SP]梦网masterSP模式下的sp生存
  17. 现代计算机发展经历的阶段,计算机的发展经历了那几个阶段
  18. Jetpack 系列之AppSearch
  19. lua服务器客户端消息回调,lua服务器客户端消息回调
  20. 一条语句查询出所有雇员的编号、姓名、性别、出生日期、电话号码部门名称和本月收入

热门文章

  1. 语言用符号打印出落叶的图案_世界上最好玩的6种表情符号编程语言
  2. 使用多线程与不使用多线程访问同一个网址实例对比
  3. mysql如何查看dbid_如何获得数据库的DBID
  4. linux查看java进程_linux中查看java进程
  5. 小程序mpvue图片绘制水印_基于mpvue小程序使用echarts画折线图的方法示例
  6. stream流常用方法_Java8 中用法优雅的 Stream,怪不得我之前总是看不懂别人写的代码!...
  7. centos7时间同步_基于 Canal 和 Kafka 实现 MySQL 的 Binlog 近实时同步
  8. C++的文件读写以及python的文件读写
  9. 机器学习入门笔记(四):朴素贝叶斯分类
  10. 关于TortoiseGit汉化包装了,但仍然是英文菜单的问题记录