分段线性是线性变换的分段形式,分段线性中的各个函数是任意设定的。分段线性能够实现对图像某些区域的特定分析,常用于图像增强中。最简单的就是对比度拉伸。
对比度拉伸技术是通过扩展图像灰度级动态范围来实现的,它可以扩展对应的全部灰度范围。提高图像的对比度可以增强图像各个区域的对比效果,对图像感兴趣的部分进行增强,而对图像不感兴趣的部分进行抑制,对比度拉伸是重要的技术之一。
分段的灰度拉伸技术可以同时结合直方图处理技术,更加灵活的控制输出图像的直方图分布,对感兴趣的区域进行调整,增强画面的品质。对于图像较暗的区域,采用k>0,进行灰度拉伸扩展;对于图像较亮的区域,采用k<0,进行灰度拉伸压缩。
具体的实现效果:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
Mat contrastStretch(Mat srcImage)
{
Mat resultImage = srcImage.clone();//"=";"clone()";"copyTo"三种拷贝方式,前者是浅拷贝