OpenCV基于局部自适应阈值的图像二值化
2015-08-05 12:10
204 查看
在图像处理应用中二值化操作是一个很常用的处理方式,例如零器件图片的处理、文本图片和验证码图片中字符的提取、车牌识别中的字符分割,以及视频图像中的运动目标检测中的前景分割,等等。
较为常用的图像二值化方法有:1)全局固定阈值;2)局部自适应阈值;3)OTSU等。
全局固定阈值很容易理解,就是对整幅图像都是用一个统一的阈值来进行二值化;
局部自适应阈值则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值。这样做的好处在于每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的。亮度较高的图像区域的二值化阈值通常会较高,而亮度较低的图像区域的二值化阈值则会相适应地变小。不同亮度、对比度、纹理的局部图像区域将会拥有相对应的局部二值化阈值。常用的局部自适应阈值有:1)局部邻域块的均值;2)局部邻域块的高斯加权和。
OpenCV中实现了以上几种二值化方法。
下面这段代码对比了全局固定阈值与局部自适应阈值的二值化结果。
原图:
全局固定阈值二值化结果(T = 100)
局部自适应阈值二值化结果(块大小 = 25)
较为常用的图像二值化方法有:1)全局固定阈值;2)局部自适应阈值;3)OTSU等。
全局固定阈值很容易理解,就是对整幅图像都是用一个统一的阈值来进行二值化;
局部自适应阈值则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值。这样做的好处在于每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布来决定的。亮度较高的图像区域的二值化阈值通常会较高,而亮度较低的图像区域的二值化阈值则会相适应地变小。不同亮度、对比度、纹理的局部图像区域将会拥有相对应的局部二值化阈值。常用的局部自适应阈值有:1)局部邻域块的均值;2)局部邻域块的高斯加权和。
OpenCV中实现了以上几种二值化方法。
下面这段代码对比了全局固定阈值与局部自适应阈值的二值化结果。
// 基于局部自适应阈值的图像二值化 // Author: http://blog.csdn.net/icvpr #include <iostream> #include <opencv2/opencv.hpp> int main(int argc, char** argv) { cv::Mat image = cv::imread("../test.bmp", CV_LOAD_IMAGE_GRAYSCALE); if (image.empty()) { std::cout<<"read image failure"<<std::endl; return -1; } // 全局二值化 int th = 100; cv::Mat global; cv::threshold(image, global, th, 255, CV_THRESH_BINARY_INV); // 局部二值化 int blockSize = 25; int constValue = 10; cv::Mat local; cv::adaptiveThreshold(image, local, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY_INV, blockSize, constValue); cv::imshow("globalThreshold", global); cv::imshow("localThreshold", local); cv::waitKey(0); return 0; }
原图:
全局固定阈值二值化结果(T = 100)
局部自适应阈值二值化结果(块大小 = 25)
相关文章推荐
- PHP GD 图像处理组件的常用函数总结
- PHP图像处理之imagecreate、imagedestroy函数介绍
- jsvascript图像处理―(计算机视觉应用)图像金字塔
- Javascript图像处理思路及实现代码
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- PHP图像处理之使用imagecolorallocate()函数设置颜色例子
- java数字图像处理基础使用imageio写图像文件示例
- javascript图像处理―边缘梯度计算函数
- Javascript图像处理―阈值函数实例应用
- Javascript图像处理―虚拟边缘介绍及使用方法
- OpenCV 2.4.3 C++ 平滑处理分析
- PHP图像处理类库及演示分享
- php图像处理函数大全(推荐收藏)
- Javascript图像处理―图像形态学(膨胀与腐蚀)
- Javascript图像处理―平滑处理实现原理
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法
- python结合opencv实现人脸检测与跟踪
- 在树莓派2或树莓派B+上安装Python和OpenCV的教程