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

怎样在绍兴e网做网站/网络舆情分析报告

怎样在绍兴e网做网站,网络舆情分析报告,宁波网络推广推荐,盐城网站建设培训学校Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。 Python OpenCV基础知识铺垫模板匹配模板匹配函数原型minMaxLoc 函数补一个 cv2.normalize橡皮擦的小节基础知识铺垫 今天的 1 个小时,我们要交给模板匹配了,而且学习起来比较轻松…

Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧。

Python OpenCV

    • 基础知识铺垫
    • 模板匹配
      • 模板匹配函数原型
      • minMaxLoc 函数
      • 补一个 cv2.normalize
    • 橡皮擦的小节

基础知识铺垫

今天的 1 个小时,我们要交给模板匹配了,而且学习起来比较轻松,因为我看到一句话,模板匹配是最没用的匹配方式,应用场景很少。

就喜欢这样的技术,学起来的摩擦力小,不容易掉头发。

模板匹配

模板匹配大意就是在整个图像区域寻找已有的小图像,在寻找之前,你需要准备一个待寻找的图像,以及一个小图

寻找的形式是从左到右,从上到下,这个找法很形象了,一行一行的找。

在寻找的过程中,通过 OpenCV 封装好的算法,计算小图与大图的匹配度,这个匹配度越大,两张图片相同的可能性越大。

模板匹配函数原型

在 Python 中,通过 help 函数,可以查看任意函数的说明。

matchTemplate(image, templ, method[, result[, mask]]) -> result

参数说明如下:

  • image:待检索的图像;
  • templ:小图,要求不大于待搜索图像;
  • method:匹配方法,下表提供,算法不需要掌握,知道用法即可;
  • result:结果图像;
  • mask:掩膜,需要与 templ 有相同的数据类型和大小,默认不设置,仅支持 method 参数值为 TM_SQDIFFTM_CCORR_NORMED

关于 method 参数的值有以下几种情况:

  • TM_SQDIFF:平方差匹配;
  • TM_SQDIFF_NORMED:标准平方差匹配,利用平方差来进行匹配,最好匹配为 0,匹配越差,匹配值越大;
  • TM_CCORR:相关性匹配;
  • TM_CCORR_NORMED:标准相关性匹配,采用模板和图像间的乘法操作,数越大表示匹配程度较高, 0 表示最坏的匹配效果;
  • TM_CCOEFF:相关性系数匹配;
  • TM_CCOEFF_NORMED:标准相关性系数匹配,将模版对其均值的相对值与图像对其均值的相关值进行匹配,1 表示完美匹配,-1 表示糟糕的匹配,0 表示没有任何相关性(随机序列)。

以上内容整理自网络

接下来编写测试代码:

import cv2 as cv# 读取目标图片,小图
target = cv.imread("./target.jpg")# 读取模板图片,待查找的图片
template = cv.imread("./template.jpg")# 获取模板图片的宽高尺寸,用于后面画矩形框
th, tw = template.shape[:2]# 执行匹配模板,匹配方式选择标准平方差匹配
result = cv.matchTemplate(target, template, cv.TM_SQDIFF_NORMED)# 输出匹配结果
print(type(result))
cv.imshow("image", result)
cv.waitKey()

注意下图中,最终匹配到的区域颜色最深。
图像的模板匹配,Python OpenCV 取经之旅第 27 天
下面我们将其标记出来,需要用到一个新的函数,具体如下。

minMaxLoc 函数

该函数是在给定的矩阵中寻找最大值和最小值,并给出它们的位置。

特别说明是如果需要在所有的通道中查找最小或者最大元素,要先将矩阵重新解释为单通道,好吧,引出归一化的概念了。

那我们先把这个函数学到收,之后在把归一化的函数补充上。

函数原型如下:

minMaxLoc(src[, mask]) -> minVal, maxVal, minLoc, maxLoc

原型比较简单,输入一个图像之后,可以返回 4 个值。

这 4 个值分别是,最大值,最小值以及最大值与最小值的位置。

上文我们使用的是 cv.TM_SQDIFF_NORMED 方法,按照上面的叙述,匹配值最小越好,所以需要获取一下图像的最小值位置。

修改上文代码如下:

import cv2 as cv# 读取目标图片,小图
target = cv.imread("./target.jpg")
# cv.imshow("target", target)# 读取模板图片,待查找的图片
template = cv.imread("./template.jpg")
# cv.imshow("template", template)# 获取模板图片的宽高尺寸,用于后面画矩形框
th, tw = template.shape[:2]# 执行匹配模板,匹配方式选择标准平方差匹配
result = cv.matchTemplate(target, template, cv.TM_SQDIFF_NORMED)# 获取最小值位置
min_val, max_val, min_loc, max_loc = cv.minMaxLoc(result)
tl = min_loc
print(tl)
# 通过模板的宽和高,找到匹配最好的右下角地方
# tl[0],tl[1]分别代表最佳匹配值地方的 x 和 y
br = (tl[0]+tw, tl[1]+th)
cv.rectangle(target, tl, br, (0,0,255),2)
# 输出匹配结果cv.imshow("image", target)
cv.waitKey()

最终运行效果如下,匹配成功。
图像的模板匹配,Python OpenCV 取经之旅第 27 天
其他的 method你自行测试吧。

补一个 cv2.normalize

学习新的函数,先把概念通读,尝试理解,理解不要在降格到应用。

归一化就是把待处理的数据进行处理,这里的处理就是某种算法了,然后将数据限制在一个范围内(范围由我们自己定义)

归一化之后,数据会变得更加有可比性,具体原因还未找到可靠资料。

函数原型如下:

dst = cv2.normalize(src[, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]])

参数说明:

  • src:输入数组;
  • dst:与 src 大小相同的输出数组;
  • alpha:如果 norm_type 为 NORM_MINMAX ,则 alpha 为最小值或最大值,如果 norm_type 为其他类型,则为归一化要乘的系数;
  • beta:如果 norm_type 为 NORM_MINMAX ,则 beta 为最小值或最大值,如果 norm_type 为其他类型,beta 被忽略,此处不会被用到,一般传入 0;
  • norm_type:归一化类型,常见的有 NORM_L1, NORM_L2, NORM_INF, NORM_MINMAX;
  • dtype:如果取负值时,dst 与 src 同样的类型,否则,dst 和 src 有同样的通道数,且此时图像深度为 CV_MAT_DEPTH(dtype);
  • mask:掩膜。

应用起来比较简单,例如本篇博客中的案例,只需要增加如下代码即可。

# 归一化处理
cv.normalize(result, result, 0, 1, cv.NORM_MINMAX, -1)

橡皮擦的小节

希望今天的 1 个小时,你有所收获,我们下篇博客见~

相关阅读


技术专栏

  1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧
  2. Python 爬虫小课,精彩 9 讲

逗趣程序员

  1. 曝光,程序员的 10 个摸鱼神器
  2. 5 个无聊 Python 程序,用 Python 整蛊你的朋友们吧
  3. 10 年老程序员教你甩锅必杀技,论【如何优雅的甩锅】
  4. 你想被开除吗?来看看程序员【离职小技巧】吧

今天是持续写作的第 70 / 100 天。
如果你有想要交流的想法、技术,欢迎在评论区留言。


如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家点赞评论收藏

http://www.lbrq.cn/news/1575901.html

相关文章:

  • 门户网站做的比较好的公司/市场推广方案ppt
  • nodejs做网站的弊端/在线查网站的ip地址
  • 服装厂做1688网站效果好不好/semen
  • 哪些网站做微课赚钱/北京搜索引擎推广公司
  • 怎么做英文的网站首页/seo网站推广什么意思
  • 网站建设小故事/seo自学网免费
  • flash网站需要改变/app推广软文范文
  • 做酒水网站陕西有哪些/广州seo优化费用
  • 刷赞网站空间/百度手机助手下载安卓版
  • 建设官方网站需要那些人员/郑州搜索引擎优化
  • 兰州最好的网站开发公司/广州网站排名优化公司
  • 支付招聘网站套餐费用怎么做帐/网上销售渠道
  • 做网站php/搜索引擎优化的目标
  • 佛山建站模板/上海专业seo服务公司
  • 正规的网站建设明细报价表/电脑编程培训学校哪家好
  • 四川省住房和城乡建设厅门户网站/哈尔滨网站优化
  • 招标网站建设方案/网络seo哈尔滨
  • 做网站微信朋友圈应该怎么发/企业如何建立网站
  • 为什么我的网站只有新闻业被收录/网络营销活动方案
  • 组建做网站的团队/百度竞价广告收费标准
  • 做毕业论文的网站/淘宝seo 优化软件
  • 网站建设对用户影响/深圳关键词快速排名
  • 营销型网站的建设软文/电脑培训班多少费用
  • 如何把网站做权重/百度投诉电话24小时
  • 怎么做网站demo/软文代理平台
  • 做网站以后的趋势知乎/网络推广产品要给多少钱
  • 北京 网站设计找时代创信好/百度竞价一个月5000够吗
  • 建设网站前端/腾讯会议多少钱一个月
  • 昆明凡科建站/潍坊网站建设咨询
  • 陶瓷网站策划书/网络营销方案如何写
  • “生成式UI革命”:Tambo AI如何让你的应用“开口说话、动手搭界面” | 全面深剖、案例实践与未来展望
  • Nginx 启用 HTTPS:阿里云免费 SSL 证书详细图文教程(新手0.5小时可完成)
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.1 安装 Node.js 与 npm(Windows/macOS/Linux 系统的安装步骤)
  • 豆包 + 蘑兔 AI:你的创作搭子
  • 文字转语音 edge_tts
  • MCU 软件断点注意事项!!!