下面要写一个书上的例子,就是利用查找表来完成灰度图像的灰度拉伸。
在写程序中,我们总希望提升运算的速度,特别是在实时检测中,程序运算时间的长短决定着算法到底能不能用。查找表是把事先计算好的数据存入数组放在内存中,需要计算时只需要从内存中提取数据而不用每次都重复复杂的运算。简而言之,就是利用内存空间来换取运算的时间。
灰度拉伸又称为对比度拉伸,是把图像中某段灰度图像拉伸到另一段灰度下,从而改善图像的显示状况。
代码如下:
#include "stdafx.h"
#ifndef HISTOGRAM_H_
#define HISTOGRAM_H_
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include<iostream>
#include <vector>
using namespace std;
using namespace cv;
class Histogram1D
{
private:
int histSize[1];//项的数目
float hranges[2];//像素的最大值以及最小值
const float *ranges[1];
int channels[1];