12基于opencv的固定阈值分割_自适应阈值分割
来源:互联网 发布:淘宝店怎么刷流量群 编辑:程序博客网 时间:2024/05/24 02:01
固定阈值分割、自适应阈值分割
一、threshold()函数
1.1 threshold()函数各参数详解
doublethreshold(InputArray src,OutputArray dst,double thresh,double maxval,int type)
Ø 第一个参数,InputArray类型的src,输入数组,填单通道 , 8或32位浮点类型的Mat即可。
Ø 第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,即这个参数用于存放输出结果,且和第一个参数中的Mat变量有一样的尺寸和类型。
Ø 第三个参数,double类型的thresh,阈值的具体值。
Ø 第四个参数,double类型的maxval,当第五个参数阈值类型type取 THRESH_BINARY 或THRESH_BINARY_INV阈值类型时的最大值.
Ø 第五个参数,int类型的type,阈值类型。
第五参数有以下几种类型
0: THRESH_BINARY 当前点值大于阈值时,取Maxval,也就是第四个参数,下面再不说明,否则设置为0
1: THRESH_BINARY_INV 当前点值大于阈值时,设置为0,否则设置为Maxval
2: THRESH_TRUNC 当前点值大于阈值时,设置为阈值,否则不改变
3: THRESH_TOZERO 当前点值大于阈值时,不改变,否则设置为0
4:THRESH_TOZERO_INV 当前点值大于阈值时,设置为0,否则不改变
1.2调用示例
Mat ScrImage, OutImage, OutImage1, OutImage2, OutImage3;
ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg");
threshold(ScrImage, OutImage1, 200, 255, CV_THRESH_BINARY);//固定阈值分割
imshow("【固定阈值处理:二值化】", OutImage1);
二、adapativeThreshold()函数
2.1 adapativeThreshold()函数各参数详解
void cvAdaptiveThreshold(constCvArr* src,CvArr* dst,double max_value,int adaptive_method =CV_ADAPTIVE_THRESH_MEAN_C,int threshold_type =CV_THRESH_BINARY,int block_size = 3,double param1= 5);
Ø src 输入图像.
Ø dst 输出图像.
Ø max_value使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV的最大值.
Ø adaptive_method自适应阈值算法使用:CV_ADAPTIVE_THRESH_MEAN_C 或 CV_ADAPTIVE_THRESH_GAUSSIAN_C (见讨论).
Ø threshold_type
Ø 取阈值类型:必须是下者之一
CV_THRESH_BINARY,
CV_THRESH_BINARY_INV
block_size用来计算阈值的象素邻域大小: 3, 5, 7,...
param1与方法有关的参数。对方法CV_ADAPTIVE_THRESH_MEAN_C 和CV_ADAPTIVE_THRESH_GAUSSIAN_C, 它是一个从均值或加权均值提取的常数(见讨论), 尽管它可以是负数。
2.2调用示例
Mat ScrImage, OutImage, OutImage1, OutImage2, OutImage3;
ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg");
adaptiveThreshold(ScrImage, OutImage2, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 31, 10);//自适应阈值分割
imshow("【自动阈值处理:二值化】", OutImage2);
三、完整程序
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>
#include <vector>
#include <cstdio>
using namespacestd;
using namespacecv;
int main()
{
Mat ScrImage, ScrImgaeCopy1, OutImage, OutImage1, OutImage2,OutImage3, OutImage4, OutImage5, OutImage6, OutImage7, OutImage8, OutImage9;
ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg",0); //读入图像 \\image1.jpg brownbug.jpg whitebug.jpg
imshow("【原图】", ScrImage);
threshold(ScrImage,OutImage1, 200, 255, CV_THRESH_BINARY);//固定阈值分割
adaptiveThreshold(ScrImage,OutImage2, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 31, 10);//自适应阈值分割
imshow("【固定阈值处理:二值化】", OutImage1);
imshow("【自动阈值处理:二值化】", OutImage2);
waitKey(0);
return NULL;
}
参考内容:
http://www.cnblogs.com/mq0036/p/5902104.html
- 12基于opencv的固定阈值分割_自适应阈值分割
- 基于opencv的阈值分割
- Opencv图像识别从零到精通(15)-----阈值分割、固定阈值Threshold、自适应阈值分割adaptiveThreshold、OSTU大津法
- 自适应阈值分割
- 自适应阈值分割
- 自适应模糊阈值分割
- 大律法,自适应阈值分割
- OpenCV自适应阈值分割函数:adaptiveThreshold()介绍
- 在OpenCV中自适应确定canny算法的分割阈值
- 在OpenCV中自适应确定canny算法的分割阈值
- OpenCV中Canny()“自适应”算法的分割阈值
- 基于Otsu算法的图像自适应阈值分割
- 基于MATLAB的图像自适应阈值分割程序
- OpenCV--阈值分割-threshold()
- opencv中几种阈值分割
- 基于阈值图像分割
- 【OpenCV】一种基于阈值的图片中的文字分割
- 图像分割自适应阈值的求取
- kinect2 安装 rtabmap 出错 解决方法
- 服务器端设置跨域请求
- ViewPager动态添加、删除 item 视图 顺带送一个画廊效果[附源码]
- ES6-对象的扩展-Object.is()
- A+B for Input-Output Practice (VII)
- 12基于opencv的固定阈值分割_自适应阈值分割
- Eclipse_Oxygen版本安装问题
- 超越阿里云,华为云网络服务竟然这么厉害!
- xmake-vscode插件开发过程记录
- [Leetcode] 461. Hamming Distance 解题报告
- 设置apache允许跨域 ajax请求
- R语言批量整合多个文件到一个文件honey心得
- Effective Java读书笔记-谨慎的覆盖clone
- IOC 容器中Bean 注入