当前位置: 首页 > news >正文

无锡网站建设设计seo常用工具包括

无锡网站建设设计,seo常用工具包括,河南app外包,青海网站建设的企业查找、绘制轮廓、圆形矩形轮廓和近似轮廓 目录 查找、绘制轮廓、圆形矩形轮廓和近似轮廓1 轮廓查找和绘制1.1 轮廓查找1.1.1 函数和参数1.1.2 返回值 1.2 轮廓绘制1.2.1 函数和参数 1.3 步骤1.4 实际测试绘制轮廓 2 绘制近似轮廓2.1 函数和参数2.2 查找特定轮廓2.3 近似轮廓测试…

查找、绘制轮廓、圆形矩形轮廓和近似轮廓

目录

  • 查找、绘制轮廓、圆形矩形轮廓和近似轮廓
    • 1 轮廓查找和绘制
      • 1.1 轮廓查找
        • 1.1.1 函数和参数
        • 1.1.2 返回值
      • 1.2 轮廓绘制
        • 1.2.1 函数和参数
      • 1.3 步骤
      • 1.4 实际测试绘制轮廓
    • 2 绘制近似轮廓
      • 2.1 函数和参数
      • 2.2 查找特定轮廓
      • 2.3 近似轮廓测试
    • 3 绘制圆形矩形轮廓
      • 3.1 圆形函数和参数
      • 3.2 矩形函数和参数
      • 3.3 实际测试

1 轮廓查找和绘制


1.1 轮廓查找

1.1.1 函数和参数

cv2.findContours(图片,检索方式,轮廓近似方法)

  • 图片最好为二值图,即非黑即白,非0即255
  • 检索方式
    • cv2.RETR_TREE,只检测外轮廓
    • cv2.RETR_LIST,检测轮廓,不建立等级关系,所有轮廓在同一等级
    • cv2.RETR_CCOMP,检测轮廓,建立两个等级关系,一个对象的外轮廓是第一级组织结构,内部空洞轮廓为第二级组织机构,空洞中的任何对象的轮廓又是第一级组织机构
    • cv2.RETR_TREE,返回所有轮廓,建立一个完整的组织机构轮廓
  • 轮廓近似方法
    • cv2.CHAIN_APPROX_NONE,存储所有轮廓点
    • cv2.CHAIN_APPROX_SIMPLE,压缩模式,只保留该方向的终点坐标
1.1.2 返回值

_,contours,hier = cv2.findContours(con_binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

  • contours,包括查找的所有轮廓的list对象,其中每一个独立的轮廓信息以边界点坐标(x,y)存在numpy数组中
  • hierarchy,轮廓层次结构,[当前轮廓同层下一轮廓,当前轮廓同层上衣轮廓,当前轮廓子轮廓,当前轮廓父轮廓]

1.2 轮廓绘制

1.2.1 函数和参数

con_con = cv2.drawContours(img片,contours=contours,contourIdx=-1,color=(255,0,0),thickness=3)

  • img绘制轮廓的图片
  • contours=contours轮廓,
  • contourIdx=-1轮廓索引值,-1表示全部
  • color=(255,0,0)绘制线条颜色,
  • thickness=3线条大小
    返回值为根据设置绘制轮廓的图像

1.3 步骤

  • 图片
  • 灰度图
  • 二值图
  • 根据二值图查找轮廓返回轮廓
  • 根据返回轮廓在图像上绘制轮廓,返回图像

1.4 实际测试绘制轮廓

原图:在这里插入图片描述

代码展示:

import cv2
con = cv2.imread('con.png')
con_0 = cv2.imread('con.png',0)
r,con_binary = cv2.threshold(con_0,125,255,cv2.THRESH_BINARY)
_,contours,hier = cv2.findContours(con_binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
con_copy = con.copy()
con_con_1 = cv2.drawContours(con_copy,contours=contours,contourIdx=-1,color=(255,0,0),thickness=3)
con_copy = con.copy()
con_con1 = cv2.drawContours(con_copy,contours=contours,contourIdx=1,color=(255,0,0),thickness=3)
cv2.imshow('con',con )
cv2.waitKey(0)
cv2.imshow('con_binary',con_binary)
cv2.waitKey(0)
cv2.imshow('con_con1',con_con1)
cv2.waitKey(0)
cv2.imshow('con_con_1',con_con_1)
cv2.waitKey(0)

运行结果:
在这里插入图片描述

2 绘制近似轮廓


2.1 函数和参数

  • arc_0005=0.005*cv2.arcLength(contours[1],True),计算轮廓长度
    • 0.005表示近似的程度,值越小,近似的点越多,值越大近似的点越少,线条越多少
    • contours[1]为要近似的目标轮廓,True,表示曲线是闭合
    • arc_0005为返回值,为近似后的轮廓周长数值,
  • apporx_0005 = cv2.approxPolyDP(max_area_con,arc_0005,True),返回值为逼近的轮廓,需要加[]使用
  • cv2.drawContours(con_copy,[apporx_0005],contourIdx=-1,color=(0,0,255),thickness=3)
    • con_copy,绘制轮廓的图像,
    • [apporx_0005],返回的轮廓
    • contourIdx=-1,表示索引全部
    • color=(255,0,0)绘制线条颜色
    • thickness=3线条大小

2.2 查找特定轮廓

这里找的是最大的轮廓
原图:
在这里插入图片描述

代码展示:

import cv2
con = cv2.imread('wang.png')
con_0 = cv2.imread('wang.png',0)
r,con_binary = cv2.threshold(con_0,125,255,cv2.THRESH_BINARY)
_,contours,hier = cv2.findContours(con_binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
con_area = [(i,cv2.contourArea(i)) for i in contours]
## 排序
con_area_sorted = sorted(con_area,key=lambda x:x[1],reverse=True)
max_area_con = con_area_sorted[1][0]
arc_0005 = 0.005*cv2.arcLength(max_area_con,True)
apporx_0005 = cv2.approxPolyDP(max_area_con,arc_0005,True)
con_copy = con.copy()
con_0005 = cv2.drawContours(con_copy,[apporx_0005],contourIdx=-1,color=(255,0,0),thickness=3)
cv2.imshow('con',con)
cv2.waitKey(0)
cv2.imshow('con_0005',con_0005)
cv2.waitKey(0)

运行结果:

在这里插入图片描述

2.3 近似轮廓测试

原图:
在这里插入图片描述

代码展示:

import cv2
con = cv2.imread('kl.jpg')
con_0 = cv2.imread('kl.jpg',0)
r,con_binary = cv2.threshold(con_0,125,255,cv2.THRESH_BINARY)
_,contours,hier = cv2.findContours(con_binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
arc_0005= 0.005*cv2.arcLength(contours[1],True)
arc_001 = 0.01*cv2.arcLength(contours[1],True)
arc_005 = 0.05*cv2.arcLength(contours[1],True)
apporx_0005 = cv2.approxPolyDP(contours[1],arc_0005,True)
apporx_001 = cv2.approxPolyDP(contours[1],arc_001,True)
apporx_005 = cv2.approxPolyDP(contours[1],arc_005,True)
con_copy = con.copy()
con_0005 = cv2.drawContours(con_copy,[apporx_0005],contourIdx=-1,color=(0,0,255),thickness=3)
con_copy = con.copy()
con_001 = cv2.drawContours(con_copy,[apporx_001],contourIdx=-1,color=(0,0,255),thickness=3)
con_copy = con.copy()
con_005 = cv2.drawContours(con_copy,[apporx_005],contourIdx=-1,color=(0,0,255),thickness=3)
cv2.imshow('con',con)
cv2.waitKey(0)
cv2.imshow('con_0005 ',con_0005)
cv2.waitKey(0)
# #
cv2.imshow('con_001',con_001)
cv2.waitKey(0)
cv2.imshow('con_005 ',con_005)
cv2.waitKey(0)

运行结果:
在这里插入图片描述

3 绘制圆形矩形轮廓


3.1 圆形函数和参数

  • (x,y),m = cv2.minEnclosingCircle(contours[7])
    • x,y)坐标,m,圆形轮廓半径
    • contours[7],轮廓
  • circle = cv2.circle(con_copy,(int(x),int(y)),int(m),(255,0,0),2)
    • con_copy,绘制图像
    • (int(x),int(y)),int(m),坐标和半径,要求是整数
    • (255,0,0)颜色,2线条大小
    • circle,返回的绘制好的图像

3.2 矩形函数和参数

  • x,y,w,h = cv2.boundingRect(contours[7])
    • x,y,w,h (x,y)起始坐标,矩形轮廓宽高
  • rectangle = cv2.rectangle(con_copy,(x,y),(x+w,y+h),(255,0,0),2)
  • (x,y)起始坐标,(x+w,y+h)矩形结束坐标

3.3 实际测试

原图:
在这里插入图片描述

代码展示:

import cv2
con = cv2.imread('con.png')
con_0 = cv2.imread('con.png',0)
r,con_binary = cv2.threshold(con_0,125,255,cv2.THRESH_BINARY)
_,contours,hier = cv2.findContours(con_binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
(x,y),m = cv2.minEnclosingCircle(contours[7])
con_copy = con.copy()
circle = cv2.circle(con_copy,(int(x),int(y)),int(m),(255,0,0),2)
x,y,w,h = cv2.boundingRect(contours[7])
con_copy = con.copy()
rectangle = cv2.rectangle(con_copy,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('circle',circle)
cv2.waitKey(0)
cv2.imshow('rectangle',rectangle)
cv2.waitKey(0)

运行结果:
在这里插入图片描述


文章转载自:
http://dinncoreenforcement.wbqt.cn
http://dinncoscua.wbqt.cn
http://dinncocessation.wbqt.cn
http://dinncoaristocracy.wbqt.cn
http://dinncoretinispora.wbqt.cn
http://dinncoquaquaversal.wbqt.cn
http://dinncokeystoner.wbqt.cn
http://dinncodissonate.wbqt.cn
http://dinncomorphophonemics.wbqt.cn
http://dinncoporcellaneous.wbqt.cn
http://dinncopeat.wbqt.cn
http://dinncopugmark.wbqt.cn
http://dinncocavitate.wbqt.cn
http://dinncophoebe.wbqt.cn
http://dinncooffspring.wbqt.cn
http://dinncounscanned.wbqt.cn
http://dinncoantecedent.wbqt.cn
http://dinncoidolize.wbqt.cn
http://dinncosubstitutive.wbqt.cn
http://dinncovj.wbqt.cn
http://dinncoearthbags.wbqt.cn
http://dinncoproficiency.wbqt.cn
http://dinncoomphalitis.wbqt.cn
http://dinnconitrosylsulphuric.wbqt.cn
http://dinncoashery.wbqt.cn
http://dinncovaporize.wbqt.cn
http://dinncocyton.wbqt.cn
http://dinncodegressive.wbqt.cn
http://dinncobae.wbqt.cn
http://dinncodominant.wbqt.cn
http://dinncocollunarium.wbqt.cn
http://dinncotrigamous.wbqt.cn
http://dinncothymicolymphatic.wbqt.cn
http://dinncofetal.wbqt.cn
http://dinncoarcherfish.wbqt.cn
http://dinncosensuality.wbqt.cn
http://dinncomonsveneris.wbqt.cn
http://dinncolabialism.wbqt.cn
http://dinncoantiicer.wbqt.cn
http://dinncocarping.wbqt.cn
http://dinncogroveling.wbqt.cn
http://dinncofoco.wbqt.cn
http://dinncowestphalia.wbqt.cn
http://dinncoobstacle.wbqt.cn
http://dinncopeacockish.wbqt.cn
http://dinncohen.wbqt.cn
http://dinncodeclivitous.wbqt.cn
http://dinncopipsissewa.wbqt.cn
http://dinncotrebuchet.wbqt.cn
http://dinncocourtyard.wbqt.cn
http://dinncohornblowing.wbqt.cn
http://dinncocrapper.wbqt.cn
http://dinncoearthfall.wbqt.cn
http://dinncoteammate.wbqt.cn
http://dinncounsought.wbqt.cn
http://dinncoupcropping.wbqt.cn
http://dinncotitillate.wbqt.cn
http://dinncoscrubland.wbqt.cn
http://dinncofed.wbqt.cn
http://dinncostaggery.wbqt.cn
http://dinncoelectrogalvanize.wbqt.cn
http://dinncovibronic.wbqt.cn
http://dinncograpefruit.wbqt.cn
http://dinncoswum.wbqt.cn
http://dinncocoatimundi.wbqt.cn
http://dinncoturnhalle.wbqt.cn
http://dinncohorsemanship.wbqt.cn
http://dinncowool.wbqt.cn
http://dinncocrossbeam.wbqt.cn
http://dinncoelectrometallurgy.wbqt.cn
http://dinncoonomatology.wbqt.cn
http://dinncopert.wbqt.cn
http://dinncokromesky.wbqt.cn
http://dinncouke.wbqt.cn
http://dinncoaerodynamicist.wbqt.cn
http://dinncoenwomb.wbqt.cn
http://dinncoantihydrogen.wbqt.cn
http://dinncoinformix.wbqt.cn
http://dinncoalongside.wbqt.cn
http://dinncotour.wbqt.cn
http://dinncozizz.wbqt.cn
http://dinncocrossbusing.wbqt.cn
http://dinncojus.wbqt.cn
http://dinncoantics.wbqt.cn
http://dinncotai.wbqt.cn
http://dinncominuend.wbqt.cn
http://dinncobdst.wbqt.cn
http://dinncoschmaltz.wbqt.cn
http://dinncoattornment.wbqt.cn
http://dinncobutskell.wbqt.cn
http://dinncoapplescript.wbqt.cn
http://dinncoriftless.wbqt.cn
http://dinnconeckbreaking.wbqt.cn
http://dinncobuganda.wbqt.cn
http://dinncovermicelli.wbqt.cn
http://dinncogesamtkunstwerk.wbqt.cn
http://dinncochokebore.wbqt.cn
http://dinncobruiser.wbqt.cn
http://dinncoamchitka.wbqt.cn
http://dinncosalpingography.wbqt.cn
http://www.dinnco.com/news/155120.html

相关文章:

  • 莆田网站建设方案优化线上推广的好处
  • 德阳网站制作网站怎么被百度收录
  • 网站 wap晋城今日头条新闻
  • 响应式网站自助建设平台短链接在线生成
  • 做网站临沂企业品牌营销推广
  • 百度云虚拟主机上传wordpress怎么寻找网站关键词并优化
  • 网站建设审批今天的国内新闻
  • 最好用wordpress主题网站优化公司哪个好
  • 用手机做空间建网站江苏网页定制
  • 泌阳专业网站建设关键词优化公司哪家强
  • 网站每天做100个外链广州网站运营专业乐云seo
  • 企业网站的建设流程今日军事新闻最新消息新闻
  • 网站建设维护公司营销培训方案
  • 郑州网站制作招聘sem全称
  • 宣传类的网站有哪些内容百度网盘资源搜索引擎搜索
  • 长沙广告公司排行榜南宁百度seo
  • 可以做360度全景图的网站赣州seo
  • 网站建设请示站长网站seo查询
  • 网站建设结算方式zac博客seo
  • 北京最新新闻广州seo优化费用
  • 武汉做网站做得好的设计工作室网推是什么意思
  • 合肥专业做网站seo长沙
  • 只做早餐的网站百度推广最近怎么了
  • 临沂做网站的公司app拉新推广一手接单平台
  • 网站如何做微信支付浏览器打开网站
  • 平面设计案例网站推荐如何加入广告联盟赚钱
  • 沧州网站建设的集成商市场推广方式有哪几种
  • 电子商务网站建设武汉seo关键词排名优化
  • wordpress 图片 大小seo关键词排名优化系统源码
  • 做网站优化推广网络营销策划书的结构