OpenCV Tutorial: 固定閾值(threshold)
来源:互联网 发布:淘宝网店进销存 编辑:程序博客网 时间:2024/04/28 03:45
固定閾值(threshold)
所謂的二值化是將影像進行區分,分成我們感興趣的部分(前景),以及不感興趣的部分(背景),通常將某個強度當作分割的標準,這個強度稱作閾值(threshold),通常以強度超過閾值的像素當作前景,反之則為背景。
閾值的算法主要分兩類:
- 固定閾值:程式或使用者直接給定一個灰階值當閾值,再用這個閾值進行二值化。
- 自適應閾值:輸入影像,程式依這影像計算出較合適的閾值,再用這個閾值進行二值化。
這邊介紹如何用OpenCV的threshold(),輸入固定閾值來進行二值化。
OpenCV固定閾值二值化
double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)
- src:輸入圖,只能輸入單通道,8位元或32位元浮點數影像。
- dst:輸出圖,尺寸大小、深度會和輸入圖相同。
- thresh:閾值。
- maxval:二值化結果的最大值。
- type:二值化操作型態,共有THRESH_BINARY、THRESH_BINARY_INV、THRESH_TRUNC、THRESH_TOZERO、THRESH_TOZERO_INV五種。
以下為進行二值化前的原始圖,假設黑線為影像的各個像素強度,藍線為閾值:
這邊分別介紹以這五種操作型態進行二值化後,影像像素值的變化。
THRESH_BINARY:超過閾值的像素設為最大值(maxval),小於閾值的設為0。
THRESH_BINARY_INV:超過閾值的像素設為0,小於閾值的設為最大值(maxval)。
THRESH_TRUNC:超過閾值的像素設為閾值,小於閾值的設為0。
THRESH_TOZERO:超過閾值的像素值不變,小於閾值的設為0。
THRESH_TOZERO_INV:超過閾值的像素值設為0,小於閾值的不變。
以下示範threshold()的用法,將灰階值小於150的設為0,大於150的設為255:
#include <cstdio>#include <opencv2/opencv.hpp>using namespace cv;int main(){ Mat src = imread("lena.jpg",CV_LOAD_IMAGE_GRAYSCALE); Mat dst; threshold(src, dst, 150, 255, THRESH_BINARY); imshow("origin", src); imshow("threshold", dst); waitKey(0); return 0;}
0 0
- OpenCV Tutorial: 固定閾值(threshold)
- 固定閾值(threshold)
- Opencv固定阀值操作-Threshold函数
- OpenCV Tutorial: 自適應閾值(threshold、CV_THRESH_OTSU)
- OpenCV—固定阈值门限分割cv::threshold
- 【拜小白opencv】21-固定阈值化:Threshold()函数
- openCV二值函数threshold的使用
- 利用OpenCV的threshold函数作图像的固定阈值化处理!
- OpenCV二值化函数Threshold
- OpenCV Threshold的用法
- openCV threshold 阈值
- OpenCV二值化函数Threshold
- OpenCV--阈值分割-threshold()
- OpenCV二值化函数threshold
- opencv的 threshold
- Opencv图像识别从零到精通(15)-----阈值分割、固定阈值Threshold、自适应阈值分割adaptiveThreshold、OSTU大津法
- opencv学习之threshold函数
- OPENCV threshold type类型选择
- USB 3.0规范中译本 第3章USB 3.0体系结构概览
- 网络世界的法律——OSI
- 【HTML5学习研究】简单服务器推送(通过SSE实现即时聊天)
- ios开发之View属性hidden, opaque, alpha, opacity的区别
- 《大型网站技术架构》读书笔记四:瞬时响应之网站的高性能架构
- OpenCV Tutorial: 固定閾值(threshold)
- USB 3.0规范中译本 第4章超高速数据流模型
- Don't dereference a collection with cascade="all-delete-orphan" ,这是14年遇到的问题,最近在博客上进行整理汇总
- python 操作mysql
- JAVA学习总结之JVM概述
- 创建数据库指定编码集
- Spring Bean后处理器
- 获取不同屏幕分辨率的LaunchImage
- 线程取消