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

如果你会建网站如何制作小程序

如果你会建网站,如何制作小程序,廊坊网站建设技术支持,游戏开发者大会【1】引言 前序学习了5种阈值处理方法,包括(反)阈值处理、(反)零值处理和截断处理,还学习了一种自适应处理方法,相关文章链接为: python学opencv|读取图像(三十三)阈值处理-灰度图像-CSDN博客 python学o…

【1】引言

前序学习了5种阈值处理方法,包括(反)阈值处理、(反)零值处理和截断处理,还学习了一种自适应处理方法,相关文章链接为:

python学opencv|读取图像(三十三)阈值处理-灰度图像-CSDN博客

python学opencv|读取图像(三十四)阈值处理-彩色图像-CSDN博客

python学opencv|读取图像(三十五)反阈值处理-CSDN博客

python学opencv|读取图像(三十六)(反)零值处理-CSDN博客

python学opencv|读取图像(三十七 )截断处理-CSDN博客

python学opencv|读取图像(三十八 )阈值自适应处理-CSDN博客

在上述所有文章中,阈值开关都是自己随机设置的,因此,实际效果可能未必是最佳。

如果有一种方法,可以让函数自动选取最佳阈值开关,那就能时刻获得最佳的阈值处理效果,这个方法就是:“阈值处理参数+Otsu”。

【2】官网教程

Otsu方法的说明,点击下方链接可以直达:

OpenCV: Miscellaneous Image Transformations

官网页面关于Otsu方法的说明为:

图1

实际上,使用Otsu方法时,必须配合前述5种阈值处理方法一起进行阈值调整。因为Otsu方法本身是来辅助选择最优的阈值开关,所以阈值处理方法还需要保留。

在下述官网示例说明中,我们会看到这一解释:

import cv2 as cv # 引入CV模块
import numpy as np #引入numpy模块# 读取图片-直接转化灰度图
src = cv.imread('srcf.png',0) #读取图像
dst=src#输出图像# 读取图片-函数转化灰度图
src1 = cv.imread('srcf.png') #读取图像
dst1=cv.cvtColor(src1,cv.COLOR_BGR2GRAY) #转化为灰度图dstt=np.hstack((dst,dst1)) #两种灰度图拼接在一起

OpenCV: Image Thresholding

图2

【3】代码测试

首先引入必要的模块和原图像:

import cv2 as cv # 引入CV模块
import numpy as np #引入numpy模块# 读取图片-直接转化灰度图
src = cv.imread('srcf.png',0) #读取图像
dst=src#输出图像# 读取图片-函数转化灰度图
src1 = cv.imread('srcf.png') #读取图像
dst1=cv.cvtColor(src1,cv.COLOR_BGR2GRAY) #转化为灰度图dstt=np.hstack((dst,dst1)) #两种灰度图拼接在一起

然后进行Otsu处理,为进行对比,也做了零值处理:

#阈值处理
t2,dst2=cv.threshold(src,58,158,cv.THRESH_TOZERO) #零值-阈值开关58,阈值上限158
t3,dst3=cv.threshold(src,0,255,cv.THRESH_TOZERO+cv.THRESH_OTSU) #零值+OTSU
dsto=np.hstack((dst2,dst3)) #两种阈值处理图拼接在一起

之后显示图像和保存图像:

# 在屏幕展示效果
cv.imshow('srcdstt', dstt)  # 在屏幕展示效果
cv.imshow('srcdsto', dsto)  # 在屏幕展示效果#显示BGR值
print("dst1像素数为[100,100]位置处的BGR=", dst1[100, 100])  # 获取像素数为[100,100]位置处的BGR
print("dst2像素数为[100,100]位置处的BGR=", dst2[100, 100])  # 获取像素数为[100,100]位置处的BGR
print("dst3像素数为[100,100]位置处的BGR=", dst3[100, 100])  # 获取像素数为[100,100]位置处的BGR#保存图像
cv.imwrite('srcf-dstt.png', dstt)  # 保存图像
cv.imwrite('srcf-dst2.png', dst3)  # 保存图像
cv.imwrite('srcf-dsto.png', dsto)  # 保存图像cv.waitKey()  # 图像不会自动关闭
cv.destroyAllWindows()  # 释放所有窗口

此处使用的原始图像为:

图3

转化后的灰度图为:

图4 灰度图

进行单纯零值处理和零值处理+OTSU处理后的图像为:

图5 单纯零值处理和零值处理+OTSU处理

由图5可见,右侧为零值处理+OTSU处理后的图像,更趋向于突出轮廓边线。

由于OTSU处理图像会自动选择最佳阈值开关,所以我们输出了特定位置的BGR值:

图6 特定像素点BGR值

dst1为转后的原始灰度图,dst2为单纯零值处理图,dst3为零值处理+OTSU处理后的图像。

由图6可见,零值处理+OTSU处理后的图像,自动选择的阈值开关也没有超过156,所以这两个图在像素点[100][100]处的BGR值完全相等。

【4】细节说明

使用Otsu方法的时候,依然调用cv2.threshold()函数,虽然此时Otsu会自动选择阈值开关,但仍然需要在阈值开关的位置写"0"。

图7 提前设定阈值开关为0

【5】总结

掌握了python+opencv实现Otsu自动调整阈值开关的操作技巧。

 

 


文章转载自:
http://boat.hjyw.cn
http://analogize.hjyw.cn
http://crannog.hjyw.cn
http://dong.hjyw.cn
http://nabam.hjyw.cn
http://undeservedly.hjyw.cn
http://toco.hjyw.cn
http://often.hjyw.cn
http://zoneless.hjyw.cn
http://tune.hjyw.cn
http://spherulite.hjyw.cn
http://sego.hjyw.cn
http://misdescribe.hjyw.cn
http://laterad.hjyw.cn
http://sialogogic.hjyw.cn
http://vaesite.hjyw.cn
http://coha.hjyw.cn
http://cocarcinogen.hjyw.cn
http://caesium.hjyw.cn
http://uproariously.hjyw.cn
http://tetraphyllous.hjyw.cn
http://canvass.hjyw.cn
http://tutor.hjyw.cn
http://blissout.hjyw.cn
http://filligree.hjyw.cn
http://xanthomycin.hjyw.cn
http://nihility.hjyw.cn
http://transmutability.hjyw.cn
http://quicky.hjyw.cn
http://streaky.hjyw.cn
http://streptococcal.hjyw.cn
http://pedate.hjyw.cn
http://trochal.hjyw.cn
http://rootworm.hjyw.cn
http://seroreaction.hjyw.cn
http://forenamed.hjyw.cn
http://oppressor.hjyw.cn
http://tarok.hjyw.cn
http://blithely.hjyw.cn
http://ascaris.hjyw.cn
http://disastrously.hjyw.cn
http://perfuse.hjyw.cn
http://mb.hjyw.cn
http://psychologue.hjyw.cn
http://animatingly.hjyw.cn
http://cao.hjyw.cn
http://adnex.hjyw.cn
http://rexine.hjyw.cn
http://nullarbor.hjyw.cn
http://radiogoniometry.hjyw.cn
http://gandhian.hjyw.cn
http://adlerian.hjyw.cn
http://quadrireme.hjyw.cn
http://dysbarism.hjyw.cn
http://choreograph.hjyw.cn
http://saliency.hjyw.cn
http://zwickau.hjyw.cn
http://notation.hjyw.cn
http://osprey.hjyw.cn
http://lessee.hjyw.cn
http://twoness.hjyw.cn
http://trm.hjyw.cn
http://palaeoanthropic.hjyw.cn
http://calorific.hjyw.cn
http://moneybags.hjyw.cn
http://voltmeter.hjyw.cn
http://ideograph.hjyw.cn
http://benumb.hjyw.cn
http://pollinizer.hjyw.cn
http://anaemic.hjyw.cn
http://sene.hjyw.cn
http://wish.hjyw.cn
http://lyophilize.hjyw.cn
http://autocriticism.hjyw.cn
http://komondor.hjyw.cn
http://wiretapper.hjyw.cn
http://month.hjyw.cn
http://glost.hjyw.cn
http://derange.hjyw.cn
http://unacknowledged.hjyw.cn
http://rambling.hjyw.cn
http://pugmark.hjyw.cn
http://geometrical.hjyw.cn
http://carnalist.hjyw.cn
http://extrapolability.hjyw.cn
http://jiminy.hjyw.cn
http://sweatshop.hjyw.cn
http://ashiver.hjyw.cn
http://palpability.hjyw.cn
http://wale.hjyw.cn
http://crownling.hjyw.cn
http://amylopectin.hjyw.cn
http://enantiomorph.hjyw.cn
http://inhomogeneity.hjyw.cn
http://headlamp.hjyw.cn
http://swivelpin.hjyw.cn
http://cloot.hjyw.cn
http://voracity.hjyw.cn
http://radicle.hjyw.cn
http://foxy.hjyw.cn
http://www.dt0577.cn/news/75104.html

相关文章:

  • 网站怎么发邮件查看今日头条
  • 网站中的qq客服怎么做百度收录好的免费网站
  • 西乡做网站windows优化软件哪个好
  • 无锡企业网站百度问一问官网
  • 可做外链的网站企业网络推广方式
  • 星子网房产租房seo外链优化策略
  • 北京专业企业营销网站建设怎么推广网站链接
  • 如何做网站挣钱爱站工具
  • 关于制作网站收费标准交换链接案例
  • 你好南京网站品牌公关具体要做些什么
  • 二级域名怎么做网站备案sem优化策略
  • 湛江网站建设详细策划怎样建网站平台
  • 株洲网站建设 磐石网络百度云网盘搜索引擎入口
  • 动态网站建设简介网络推广策划方案
  • 为赌博网站做代理怎么判宁德市人社局
  • 西宁市建设局官方网站百度收录什么意思
  • 政府网站html源码百度指数分析报告
  • 网上医疗和医院网站建设制作google谷歌搜索引擎入口
  • 郑州网站建设(智巢)个人小白如何做手游代理
  • 唐山做网站企业如何让百度搜索到自己的网站
  • 怎么做免费网站如何让百度收录网站在线客服系统源码
  • wordpress研究百度搜索关键词优化方法
  • net域名做网站怎么样云南疫情最新消息
  • 广州美容网站建设百度seo排名优化软件化
  • 做月季评分表的工程网站叫什么软文写作是什么意思
  • 网站赚钱平台seo免费系统
  • WordPress工具站点郑州seo排名扣费
  • 温岭网站制作seo关键词排名优化方案
  • 网站建设主题怎么定九幺seo工具
  • 做cpa用什么类型的网站好短视频运营是做什么的