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

友点企业网站文化馆 网站 设计

友点企业网站,文化馆 网站 设计,长沙市有什么好玩的旅游景点,建设公司网站账务处理目标:1. 明白阈值处理的作用及应用场景2. 这段内容比较简单说明:阈值函数是指剔除图像内像素值高于一定值或者低于一定值的像素点1. cv2.threshold()函数函数:ret, dst cv2.threshold(src, thresh, maxval, type)参数说明:src&am…

目标:

1. 明白阈值处理的作用及应用场景

2. 这段内容比较简单

说明:阈值函数是指剔除图像内像素值高于一定值或者低于一定值的像素点


1. cv2.threshold()函数

函数:ret, dst = cv2.threshold(src, thresh, maxval, type)

参数说明:

  • src:输入图像(必须是单通道灰度图)。
  • thresh:设定的阈值。
  • maxval:当像素值超过阈值(或满足特定条件)时,赋予的最大值(通常为 255,即白色)。
  • type:阈值处理的类型(核心参数,决定比较规则)。

返回值:

  • ret:实际使用的阈值(通常与输入的thresh相同)。
  • dst:处理后的输出图像。

(1)二值化阈值处理(cv2.THRESH_BINARY)

说明:二值阈值话将原始图像处理仅为两个值得二值图像

  • 对于灰度值大于阈值thresh的像素点,将其灰度值设定为最大值
  • 对于灰度值小于或等于阈值thresh的像素点,将其灰度值设定为0

例如:在8位图像中,最大值为255,。我们的设定阈值为127

  • 所有大于127的像素点都会处理为255
  • 其他值会被处理为0

实例:

import  cv2img1 = cv2.imread("1.JPG",flags=cv2.IMREAD_GRAYSCALE)
dst,img2 = cv2.threshold(img1,127,255,cv2.THRESH_BINARY)
cv2.namedWindow("now",cv2.WINDOW_NORMAL)
cv2.namedWindow("original",cv2.WINDOW_NORMAL)
print(img2)
cv2.imshow("original",img1)
cv2.imshow("now",img2)
cv2.waitKey()
cv2.destroyAllWindows()

结果:

若图像不是单通道,则结果如下图:

(2)反二值化阈值处理(cv2.THRESH_BINARY_INV)

说明:跟上述反过来

  • 对于灰度值大于阈值的像素点,将其值设定为0
  • 对于灰度值小于或等于阈值的像素点,将其值设定为255

(3)截断阈值化处理(cv2.THRESH_TRUNC

说明:该方法会将大于阈值的像素点的值设定为阈值,小于或者等于该阈值的像素点保持不变

例如:阈值选取127

  • 对于像素值大于127的像素点,其像素值被设定为127
  • 对于像素值小于或者等于127的像素点,其像素值保持不变

实例:

import  cv2img1 = cv2.imread("1.JPG",cv2.IMREAD_GRAYSCALE)
dst,img2 = cv2.threshold(img1,127,255,cv2.THRESH_TRUNC)
cv2.namedWindow("now",cv2.WINDOW_NORMAL)
cv2.namedWindow("original",cv2.WINDOW_NORMAL)
print(img2)
cv2.imshow("original",img1)
cv2.imshow("now",img2)
cv2.waitKey()
cv2.destroyAllWindows()

结果:

(4)超阈值领处理(cv2.THRESH_TOZERO

说明:超阈值领处理会将大于阈值的像素点处理为0,小于或者等于该阈值的像素点保持不变。

例如:阈值选取127

  • 对于像素值大于阈值的像素点其阈值会被处理0
  • 对于像素值小于或者等于阈值的像素点,其像素值保持不变

实例:

import  cv2img1 = cv2.imread("1.JPG",cv2.IMREAD_GRAYSCALE)
dst,img2 = cv2.threshold(img1,127,255,cv2.THRESH_TOZERO_INV)
cv2.namedWindow("now",cv2.WINDOW_NORMAL)
cv2.namedWindow("original",cv2.WINDOW_NORMAL)
print(img2)
cv2.imshow("original",img1)
cv2.imshow("now",img2)
cv2.waitKey()
cv2.destroyAllWindows()

结果:

(5)低阈值零处理

说明:低阈值零处理会将图像中小于或者等于阈值的像素点的值处理为0,大于阈值的像素点的值保持不变。

  • 对于像素值大于阈值的像素点,其值保持不变
  • 对于像素值小于或者等于阈值的像素点,其值将被处理为0

实例:

import  cv2img1 = cv2.imread("1.JPG",cv2.IMREAD_GRAYSCALE)
dst,img2 = cv2.threshold(img1,127,255,cv2.THRESH_TOZERO)
cv2.namedWindow("now",cv2.WINDOW_NORMAL)
cv2.namedWindow("original",cv2.WINDOW_NORMAL)
print(img2)
cv2.imshow("original",img1)
cv2.imshow("now",img2)
cv2.waitKey()
cv2.destroyAllWindows()

结果:

(6)Otsu处理

说明:直接设定个阈值对像素很不友好,例如:你的最大像素为125,而自己设定的阈值为127,。

Otsu会遍历所有可能阈值,从而找到最佳阈值。

ret, th = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) 

与普通阈值分割区别:

  • 参数type增加了一个参数值“cv2.THRESH_OTSU”
  • 设定的阈值为0
  • 返回值ret是Otsu方法计算得到并使用最优阈值

实例:

import  cv2img1 = cv2.imread("1.JPG",cv2.IMREAD_GRAYSCALE)
dst,img2 = cv2.threshold(img1,0,255,cv2.THRESH_TOZERO+cv2.THRESH_OTSU)
cv2.namedWindow("now",cv2.WINDOW_NORMAL)
cv2.namedWindow("original",cv2.WINDOW_NORMAL)
print(img2)
print(dst)
cv2.imshow("original",img1)
cv2.imshow("now",img2)
cv2.waitKey()
cv2.destroyAllWindows()

结果:之前设定的阈值为127,目前自动设定为129

(7)自适应阈值处理

说明:使用变化的阈值完成图像的阈值处理,主要方式为计算每个像素点周围临近区域的加权平均值获得阈值,并用该阈值对像素点进行处理。

函数:dst = cv2.adaptiveThreshold(src, maxval, adaptiveMethod, thresholdType, blockSize, C)

参数说明:

  • src:输入图像(必须是单通道灰度图)。
  • maxval:满足阈值条件时赋予的最大值(通常为 255)。
  • adaptiveMethod:计算局部阈值的方法(2 种):
    • cv2.ADAPTIVE_THRESH_MEAN_C:局部阈值 = 局部区域的平均值 - C
    • cv2.ADAPTIVE_THRESH_GAUSSIAN_C:局部阈值 = 局部区域的高斯加权平均值 - C
  • thresholdType:阈值处理类型(只能是二进制阈值或反二进制阈值):
    • cv2.THRESH_BINARY
    • cv2.THRESH_BINARY_INV
  • blockSize:局部区域的大小(必须是奇数,如 3、5、7...,表示以当前像素为中心的blockSize×blockSize窗口)。
  • C:常数(从局部平均值或加权平均值中减去的数值,用于调整阈值的偏移量,可正可负)。
import  cv2img1 = cv2.imread("1.JPG",cv2.IMREAD_GRAYSCALE)
# dst,img2 = cv2.threshold(img1,0,255,cv2.THRESH_TOZERO+cv2.THRESH_OTSU)
img2=cv2.adaptiveThreshold(img1,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,11,3)
cv2.namedWindow("now",cv2.WINDOW_NORMAL)
cv2.namedWindow("original",cv2.WINDOW_NORMAL)
print(img2)
cv2.imshow("original",img1)
cv2.imshow("now",img2)
cv2.waitKey()
cv2.destroyAllWindows()

结果:

    注意事项:输入必须是单通道灰度图,彩色图需先转换(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY))。blockSize必须是奇数(确保窗口有中心像素)。

      http://www.dtcms.com/a/602711.html

      相关文章:

    • 大文件上传全方案:Vue + Node.js 实战
    • SCI精读:基于计算机视觉改进光伏热点和积尘检测:基于现场航拍图像的YOLO模型系统比较
    • 专门做创意桌椅的网站谷歌play商店
    • 怎么查看网站是否做静态化处理0基础如何做网站
    • 基于MATLAB绘制CALIPSO Level 2产品中体积退偏比垂直廓线和频率分布直方图
    • 青岛网站推广哪家效果好搜索引擎营销案例分析
    • 网站网站如何做的充值下载网站开发
    • 做网站公司广州ip地址免费
    • MATLAB中海洋要素计算工具箱解析
    • 网站开发备案需要什么wordpress入门教程(视频)
    • 哪里有网站开发技术怎样优化排名自己网站
    • 重组蛋白基础与技术概述
    • 利用systick定时器获取微秒计数
    • 如何用易语言做网站小说网站的网编具体做哪些工作
    • CAN总线协议:帧格式
    • 企业微信AI怎么用?从智能表格落地看如何提升运营效率
    • 昆明做网站seo南昌公司网站建设
    • 知寰Hybrid RAG:不止于图谱,重新定义GraphRAG的行业智能新范式
    • 上海网站建设企业建站方一凡和磊儿做家教的网站
    • SQLiteStudio基本操作教程
    • Labview进阶04:Labview与OPC UA设备通信(dll版)
    • 江苏网站建设wordpress域名配置
    • 德州市建设街小学网站首页wordpress的文章多重筛选
    • 加密货币均线策略与传统MACD(介绍下回测框架的择时功能)
    • 青海建设厅报名网站软件工程课程设计题目
    • 网站制作 牛商网中文域名到期对网站的影响
    • 《雷电模拟器9》 [9.1.76.0][x64] [绿色纯净版] 下载
    • 网站建设要点自助建站推广
    • 开发网站的基本流程网站制作怎么做框架
    • 【经典书籍】《代码整洁之道》第十三章“并发编程”精华讲解