python opencv3 轮廓检测
git:https://github.com/linyi0604/Computer-Vision
# coding:utf8 import cv2
import numpy as np # 创建一个200*200 的黑色空白图像
img = np.zeros((200, 200), dtype=np.uint8)
# 在图像的中央位置 放置一个100*100的白色方块
img[50:150, 50: 150] = 255 cv2.imshow("image", img)
# 二值化操作
ret, thresh = cv2.threshold(img, 127, 255, 0)
"""
ret, dst = cv2.threshold(src, thresh, value, type)
参数:
src: 原图像
thresh: 阈值
value: 新值 大于或小于阈值的值将赋新值
type: 方法类型,有如下取值:
cv2.THRESH_BINARY 黑白二值
cv2.THRESH_BINARY_INV 黑白二值翻转
cv2.THRESH_TRUNC 得到多像素值
cv2.THRESH_TOZERO
cv2.THRESH_TOZERO_INV
返回值:
ret: 得到的阈值值
dst: 阈值化后的图像
""" # 得到 修改后的图像, 轮廓, 轮廓的层次
image, contours, hierarchy = cv2.findContours(
thresh,
cv2.RETR_TREE,
cv2.CHAIN_APPROX_SIMPLE
) """
img, contours, hierarchy = cv2.findContours(输入图像, 层次类型, 逼近方法)
参数:
输入图像: 该方法会修改输入图像,建议传入输入图像的拷贝
层次类型:
cv2.RETR_TREE 会得到图像中整体轮廓层次
cv2.RETR_EXTERNAL 只得到最外面的轮廓
逼近方法: 返回值:
img: 修改后的图像
contours: 图像的轮廓
hierarchy: 图像和轮廓的层次 """
# 原图像转换成bgr图像
color = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
# 用绿色 在原图像上画出轮廓
img = cv2.drawContours(color, contours, -1, (0, 255, 255), 2) cv2.imshow("contours", color)
cv2.waitKey()
cv2.destroyAllWindows()

python opencv3 轮廓检测的更多相关文章
- python opencv3 圆检测
git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 import numpy as np img_ori ...
- python opencv3 直线检测
git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 import numpy as np # 读入图像 ...
- OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle
千万注意opencv的轮廓检测和边缘检测是两码事 本文链接:https://blog.csdn.net/wsp_1138886114/article/details/82945328 1 获取轮廓 O ...
- 用 Python 和 OpenCV 检测图片上的条形码
用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...
- 用 Python 和 OpenCV 检测图片上的条形码(转载)
原文地址:http://python.jobbole.com/80448/ 假设我们要检测下图中的条形码: # load the image and convert it to grayscale 1 ...
- OpenCV图像轮廓检测
轮廓检测: 轮廓检测的原理通俗的说就是掏空内部点,比如原图中有3*3的矩形点.那么就可以将中间的那一点去掉. 一.关键函数1.1 cvFindContours函数功能:对图像进行轮廓检测,这个函数将 ...
- opencv--图像轮廓检测
//图像的轮廓检测上 //By MoreWindows (http://blog.csdn.net/MoreWindows) #include <opencv2/opencv.hpp> u ...
- [转载+原创]Emgu CV on C# (七) —— Emgu CV on 轮廓检测
轮廓检测 对于查找轮廓我们一般要对图像Canny检测.但是对于很特殊的场合其实我们还可以直接对二值化的图像进行轮廓的提取. 关键函数 1. cvFindContours Retrieves conto ...
- 第十七节,OpenCV(学习六)图像轮廓检测
1.检测轮廓 轮廓检测是图像处理中经常用到的,OpenCV-Python接口中使用cv2.findContours()函数查找检测物体的轮廓. cv2.findContours(image, mode ...
随机推荐
- Tju_Oj_2790Fireworks Show
这个题主要在于时间复杂度的计算,N是10的6次方,C是10的2次方,OJ系统可接受的时间是10的7次方(室友说是无数先人测出来了┭┮﹏┭┮),所以如果普通遍历的话肯定会超时.而代码中是跳着走了,相当于 ...
- Eclipse改变相同代码高亮颜色
一.点击某一代码时,让相同代码高亮显示(Eclipse默认是这样的) Window ->preferences ->Java ->Editor ->Mark Occurrenc ...
- python3学习笔记.4.turtle绘图
先放上参考 https://docs.python.org/3/library/turtle.html //********************************************** ...
- oracle04--伪列
1. 伪列 1.1. 什么是伪列 伪列是在ORACLE中的一个虚拟的列. 伪列的数据是由ORACLE进行维护和管理的,用户不能对这个列修改,只能查看. 所有的伪列要得到值必须要显式的指定. 最常用的两 ...
- 凸包入门(Graham扫描法)(A - Wall POJ - 1113)
题目链接:https://cn.vjudge.net/contest/276359#problem/A 题目大意:有一个国王,要在自己的城堡周围建立围墙,要求围墙能把城堡全部围起来,并且围墙距离城堡的 ...
- weblogica 启动managed server 不用每次输入密码
[weblogic@node2 AdminServer]$ pwd /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains ...
- discuz过滤词语无效
1.是由于一些特殊的字导致serialize序列化错误.过滤词语在表 common_word中,序列化房子common_syscache的censor中,看看是否有特殊符号.
- linux音频alsa-uda134x驱动分析之二(时钟)
Audio Clocking音频时钟============== This text describes the audio clocking terms in ASoC and digital au ...
- 怎么看innodb的B+TREE层数?
怎么看innodb的B+TREE层数?,下面以sysbench_testdata.sbtest2为例查看索引层数: - 查看相关系统 root@localhost [sysbench_testdata ...
- js面试题之求数组最值
今天继续分享js常见的面试题,求数组最大值,最小值,这里列举4种常见解法,还有其他方法也可以实现,读者知道可以私信我,我将把意见列举到博客中,欢迎提出意见. 第一种,利用数组排序 var arr=[3 ...