opencv自适应阈值
来源:互联网 发布:什么叫网络编程 编辑:程序博客网 时间:2024/06/06 07:43
在图像阈值化操作中,我们更关心的是从二值化图像中分离目标区域背景区域,仅仅通过设定固定阈值很难达到理想的分割效果。在实践应用中,目标及背景区域通常相互依存在图像块中,我们可以通过图像像素领域快的分布特征来自适应确定阈值的二值化阈值。对于图像块中亮度变化明显的区域,自适应阈值通常会设置的比较大或者比较小,进而保证图像中各个像素的阈值会随着周围领域的变化而变化。
opencv中提供了自适应阈值化函数adaptiveThreshold,该函数有两种自适应阈值化类型参数可供选择,用来对当前像素点与领域像素块进行阈值计算。
void adaptiveThreshold(InoutArray src, OutputArray dst, double maxVal, int adaptiveMethod, int thresholdType, int blockSize, double C)
实现图像的自适应阈值化操作。参数src表示源图像数组(单通道8位图像)。参数dst表示输出图像组(与输入图像同样的尺寸和类型)。参数maxVal表示预示满足条件的最大值。参数adaptiveMethod表示自适应阈值算法选择ADAPTIVE_THRESHOLD_MEAN_C或者ADAPTIVE_THRESHOLD_GAUSSIAN_C。参数thresholdType表示阈值类型THRESHOLD_BINARY和THRESHOLD_BINARY_INV。参数blockSize表示领域块的大小,用来计算区域阈值,一般选择3、5、7............。参数C表示常数,它是一个从均值或者加权均值提取的常数,可以是负数。
代码如下:
#include"opencv2/highgui/highgui.hpp"
#include"opencv2/imgproc/imgproc.hpp"
#include"opencv2/opencv.hpp"
#include"opencv2/core/core.hpp"
#include<stdio.h>
#include<string>
usingnamespace std;
usingnamespace cv;
int main()
{
cv::Mat srcImage = cv::imread("C:\\Users\\LP\\Desktop\\C++\\ConsoleApplication4\\ConsoleApplication4\\RGBFlower4.jpg");
if(srcImage.empty())
{
return-1;
}
cv::imshow("原图像", srcImage);
//灰度转换
cv::Mat srcGray;
cv::cvtColor(srcImage, srcGray, CV_RGB2GRAY);
cv::imshow("srcGray", srcGray);
cv::Mat dstImage;
//初始化自适应阈值参数
int blockSize =5;
int constValue =20;
int maxValue =255;
//自适应阈值算法0:ADAPTIVE_THRESHOLD_MEAN_C,1:ADAPTIVE_GAUSSIAN_MEAN_C
//阈值类型,0:THRESHOLD_BINARY,1:THRESHOLD_BINARY_INV
int adaptiveMthod =0;
int thresholdType =1;
//图像自适应阈值操作
cv::adaptiveThreshold(srcGray, dstImage, maxValue, adaptiveMthod, thresholdType, blockSize, constValue);
cv::imshow("dstImage", dstImage);
cv::waitKey(0);
//预设最大值
constint maxVal=255;
return0;
}
阅读全文
0 0
- OpenCV-自适应阈值化
- OpenCV自适应阈值
- opencv自适应阈值
- 初学opencv-单一阈值与自适应阈值
- opencv函数系列--自适应阈值
- Learning OpenCV cvAdaptiveThreshold 自适应阈值
- Learning OpenCV cvAdaptiveThreshold 自适应阈值
- opencv 学习之 阈值化<2> 自适应阈值
- OpenCV 阈值化操作cvThreshold 和 自适应阈值cvAdaptiveThreshold操作
- OpenCV学习笔记-自适应阈值化
- OpenCV学习笔记-自适应阈值化
- Opencv step by step - 自适应阈值
- OpenCV学习笔记-自适应阈值化
- opencv学习——自适应阈值二值化
- OpenCV自适应阈值分割函数:adaptiveThreshold()介绍
- 自适应阈值
- 自适应阈值
- 在OpenCV中自适应确定canny算法的分割阈值
- 338. Counting Bits
- 简述PHP语言
- PS
- opencv双阈值化
- css3 渐变
- opencv自适应阈值
- opencv固定化阈值
- 数据库优化之sql优化
- 基础课程第一讲0530
- linux shell 判断空字符串的几种方法!
- WebView 重定向行为导致的多次加载问题
- 【线性规划与网络流】飞行员配对方案问题
- (李兴华)【FANUC FOCAS1/2 Library 开发系列教程】-开发包概述
- 记一次失败的苏宁面试经历