RM2016视觉开源OpenCv2代码
#include<opencv2/opencv.hpp>
#include<iostream>
#include<cstdio>
#include<omp.h>
using namespace std;
using namespace cv;
#define T_ANGLE_THRE 10
#define T_SIZE_THRE 5
void brightAdjust(Mat &src, Mat &dst, double dContrast, double dBright)
{
int nVal;
int rowNumber = dst.rows;
int colNumber = dst.cols*dst.channels();
omp_set_num_threads(8);
#pragma omp parallel for
for (int i = 0; i < rowNumber; i++)
{
uchar* dstdata = dst.ptr<uchar>(i);
uchar* srcdata = src.ptr<uchar>(i);
for (int j = 0; j < colNumber; j++)
{
nVal = ((dContrast * srcdata[j]) + dBright);
if (nVal > 255) nVal = 255;
else if (nVal < 0) nVal = 0;
dstdata[j] = nVal;
}
}
}
void getDiffImage(Mat &src1, Mat &src2, Mat &dst, int nThre)
{
int nVal;
int rowNumber = src1.rows;
int colNumber = src1.cols * src1.channels();
omp_set_num_threads(8);
#pragma omp parallel for
for (int i = 0; i < rowNumber; i++)
{
uchar* srcData1 = src1.ptr<uchar>(i);
uchar* srcData2 = src2.ptr<uchar>(i);
uchar* dstData = dst.ptr<uchar>(i);
for (