首页 > 其他分享 >opencv图片的二值化操作

opencv图片的二值化操作

时间:2024-10-09 19:18:41浏览次数:11  
标签:img 阈值 cv2 filename opencv main 二值化 图片

        在图像处理领域中,二值化操作是一种非常基础且重要的技术。它将灰度图像或彩色图像转换为仅包含两种像素值的图像,即黑色和白色(或者更一般地说,前景和背景)。这种操作在处理图像时极大地简化了图像数据的复杂度,使得后续的图像分析和处理步骤变得更加高效和直观。

        二值化操作的核心在于选择一个合适的阈值,这个阈值决定了哪些像素值被归为前景(通常是白色),哪些被归为背景(通常是黑色)。阈值的选择可以根据具体需求采用固定值、自适应算法或基于图像统计的方法来确定。

        本文旨在介绍如何使用Python及其图像处理库来实现图像的二值化操作,包括基础的二值化方法、自适应阈值方法以及一些高级技巧。通过学习和实践这些技术,你将能够更好地理解和应用二值化在图像处理中的重要作用。

        通过基本的像素处理图像的遍历可以实现设置阈值将图片二值化:

import cv2

def main(filename):
    img = cv2.imread(filename,flags=0)
    for i in range(len(img)):
        for j in range(len(img[i])):
            if img[i][j] < 150:
                img[i][j] = 0
            else:
                img[i][j] = 255
    cv2.imshow('window',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

main('f1.png')

        如图即为二值化后的图片,例如在检测牙垢,拍胸片等方面可以更加便于观察。

        在以上的代码中,设置阈值为150,即低于阈值的相对来说更加暗一点,那么就让它变得更暗。反之变得更亮。

        如果我们想让亮的地方变暗,暗的地方变亮,只需要把if的判断条件修改为img[i][j]>150即可

import cv2

def main(filename):
    img = cv2.imread(filename,flags=0)
    for i in range(len(img)):
        for j in range(len(img[i])):
            if img[i][j] > 150:
                img[i][j] = 0
            else:
                img[i][j] = 255
    cv2.imshow('window',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

main('f1.png')

        而在python的opencv包中也提供了一些方法,让我们快速将图片二值化,同时设置阈值。

import cv2

def main(filename):
    img = cv2.imread(filename,flags=0)
    t,img = cv2.threshold(img,127,255,cv2.THRESH_BINARY)
    cv2.imshow('window',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

main('f1.png')

这样就可以更快得将图片二值化,如果想反二值化,就把最后一个参数设置为cv2.THRESH_BINARY_INV

标签:img,阈值,cv2,filename,opencv,main,二值化,图片
From: https://blog.csdn.net/2302_80091643/article/details/142794002

相关文章

  • 图片处理在线工具汇总
    图像格式转换器压缩图像调整图像大小调整图像宽高比例批量给图片加水印批量旋转图像在线生成透明ICO图标在线生成透明圆角图片制作gif图片,编辑gif图片视频转gif图片,视频转动图分解gif图片裁剪、编辑图像生成宫格图像,分割图片图像处理助手桌面应用程序图像压缩器桌面......
  • KINDEDITOR 实现CTRL+V粘贴图片并上传、WORD粘贴带图片
    编辑器:KindEditor需求:从word复制粘贴内容和图片系统:windows,macOS,linux,信创国产化前端:vue2,vue3,vue-cli,后端:java,asp.net,php,asp要求:开源,免费,技术支持最近这块好像很火,或者说需求有点旺盛,今天早上又有网友加我微信,实际上之前就已经在网上公布了微信号了,但是很多......
  • 富文本编辑器UEDITOR支持从WORD复制粘贴保留格式和图片的插件
    编辑器:百度ueditor前端:vue2,vue3,vue-cli,html5需求:复制粘贴word内容图片,word图片转存交互,导入pdf,导入PowerPoint(PPT)要求:开源,免费,技术支持用户体验:Ctrl+V快捷键操作该说不说,最近这块应该也是挻火的,今天早上又有网友加我微信私聊,说是想了解一下这块的技术和方案。实......
  • 如何自己动手实现一个图片解答小助手
    有一张图片如下所示:Kimi上有一个功能,就是解析图片内容,给出回答:这样可以用于拍照向AI提问的场景,我自己也有这方面的需求,因此动手实践了一下。自己动手实现的效果如下所示:那么自己如何实现呢?可以通过添加一个OCR的功能来实现。中文图片文字识别也就是OCR效果比较好的是百度......
  • 在Ubuntu上通过源码安装OpenCV和OpenCVSharp
    OpenCVOpenCV(OpenSourceComputerVisionLibrary)是一个开源计算机视觉和机器学习软件库。以下是OpenCV的一些主要特性:主要特性功能丰富:OpenCV提供了超过2500个优化的算法,包括图像处理、特征检测、物体识别、面部识别、图像分割、运动分析等。跨平台:支持Windows、Linux......
  • 如何替换公司网站的图片背景
    要替换公司网站上的图片背景,你可以按照以下步骤操作:备份当前网站:在进行任何更改之前,请确保备份整个网站或至少备份与背景图片相关的部分。选择新的背景图片:确定一张新的背景图片,并确保它的尺寸和质量适合用于网站背景。上传新图片:使用FTP客户端或其他文件管理工......
  • springboot-网站开发-linux服务器部署jar格式图片存档路径问题
    springboot-网站开发-linux服务器部署jar格式图片存档路径问题!近期在部署自己的网站源码,使用的是jar格式的编码格式。发布到远程服务器后,发现客户捐款的证书图片存在异常。经过排查代码,找到了原因。下面分享给大家。1:首先,在linux服务器内部,存档图片,文件等资源的时候,本地java......
  • 如何把 Word 中的图片导出?轻松地将图片从word导出来的6个方法
    在Word中高效提取图片的方法有哪些?在日常办公和学习中,Word文档作为我们处理文字、排版及插入多媒体元素的重要工具,扮演着不可或缺的角色。其中,图片作为直观展示信息的手段,频繁出现在各类文档中。然而,随着文档内容的日益丰富,有时我们可能需要从复杂的Word文档中高效地提取出图......
  • 部署cogview图片生成模型
       CogView3是一种新颖的文本生成图像系统,采用了接力扩散的方式,将生成高分辨率图像的过程分解为多个阶段。通过接力的超分辨率过程,对低分辨率生成结果添加高斯噪声,并从这些带噪声的图像开始扩散。我们的结果显示,CogView3的表现优于SDXL,获胜率达到77.0%。此外,通过对扩......
  • 公司网站的图片怎么更换
    更换公司网站上的图片可以通过以下几个步骤来实现:备份现有网站:在进行任何更改前,确保备份现有网站的所有文件和数据库,以防意外丢失数据。准备新图片:确保新图片已经准备好,并且符合网站的要求(例如尺寸、格式、质量等)。登录网站管理后台(如果适用):如果你的网站使用了内......