首页 > 编程语言 >OpenCV-Python之图像阈值化

OpenCV-Python之图像阈值化

时间:2022-11-22 14:33:02浏览次数:39  
标签:src 阈值 Python image OpenCV THRESH threshold cv

OpenCV-Python之图像阈值化

这篇笔记主要介绍全局阈值局部阈值两方面。
关于阈值化方法

  • OTSU:内方差最小,外方差最大
  • Triangle:直方图为三个波峰或者生物中的细胞图像最为常用,其他并不常见
  • 自动和手动
  • 自适应(局部)阈值

全局阈值

import cv2 as cv
import  numpy as np

def threshold_demo(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    ret, binary = cv.threshold(gray, 0, 255,cv.THRESH_BINARY|cv.THRESH_OTSU)
    print('threshold value:{}'.format(ret))
    cv.imshow('threshold image', binary)

src = cv.imread('./data/sudoku.png',1)
cv.imshow('source image', src)
threshold_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

OpenCV-Python之图像阈值化_threshold
OpenCV-Python之图像阈值化_Python_02
如果用Triangle方法,则
ret, binary = cv.threshold(gray, 0, 255,cv.THRESH_BINARY|cv.THRESH_TRIANGLE)
OpenCV-Python之图像阈值化_threshold_03
直接面目全非!所以这个三角方法慎用

自适应阈值

def local_threshold_demo(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    dst = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY, 25, 10)
    cv.imshow('threshold image', dst)

src = cv.imread('./data/sudoku.png',1)
cv.imshow('source image', src)
local_threshold_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

OpenCV-Python之图像阈值化_threshold_04
感觉这个效果棒呆了有木有。
下面这个使用高斯方法:
OpenCV-Python之图像阈值化_threshold_05
比C_means要清晰

自定义阈值操作

标签:src,阈值,Python,image,OpenCV,THRESH,threshold,cv
From: https://blog.51cto.com/u_13875041/5877986

相关文章

  • python 写一行代码,计算随机6000次摇筛子,每一个对应出现的次数
    importrandomf1=0f2=0f3=0f4=0f5=0f6=0for_inrange(6000):face=random.randint(1,6)ifface==1:f1+=1elifface......
  • OpenCV找圆
    #include"opencv2/imgproc/imgproc.hpp"#include"opencv2/highgui/highgui.hpp"#include<stdlib.h>#include<stdio.h>#include<iostream>usingnamespacecv;usingnam......
  • Python爬虫异常怎么用邮件来通知
    正常企业做数据抓取经常会遇到各种故障问题,那么在人不能随时盯着爬虫电脑来防止错误,就需要用email来向自己报告。SMTP邮件协议是Python内置是支持的,他不仅可以发送纯文本的......
  • python 执行报错
    PSF:\python\Python-Core-50-Courses-master\learn_python>pythonhelloworld.pyC:\Users\huawei\AppData\Local\Microsoft\WindowsApps\python.exe:can'topenfi......
  • python判断文件夹是否存在不存在创建
    (39条消息)python判断目录和文件是否存在,若不存在即创建_仰望神的光的博客-CSDN博客判断目录是否存在importosdirs='/Users/joseph/work/python/'ifnotos.pat......
  • python基础知识点
    目录字典列表字典a={}a['you']=['a','b']a['me']=['c','d']print(a)输出结果:{'you':['a','b'],'me':['c','d']}列表print([2]+[3])输出结果......
  • opencv实现人脸识别和眼部识别
    代码importcv2ascvimg=cv.imread("./lena.jpg")gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)face_cascade=cv.CascadeClassifier('/usr/local/share/opencv4/haarcas......
  • 利用opencv拼接图像视频摄像头进行录像
    将图像拼接成视频格式今天想将5000张图片转换成视频格式,操作如下:importosimportcv2importnumpyasnppath='/home/violet/PycharmProjects/deepSort/images/img1/'fil......
  • python错误总结(常更)
    AttributeError:‘set’objecthasnoattribute‘items’出错原因是在http请求的header里,应该用冒号而不是逗号//wrongheaders={'Content-Type','applica......
  • Python工具箱系列(十五)
    前文讲述加解密时,直接将密钥写在了python源代码中,这肯定不是什么好的手法。应该将这类与代码加功效无关的信息保存到配置中,随时可以需要进行修改。从大的角度来看,配置无非......