#include
#include
#include
#include
using namespace std;
using namespace cv;
//-----------------------------------【全局变量声明部分】--------------------------------------
//描述:全局变量声明
//-----------------------------------------------------------------------------------------------
Mat g_srcImage, g_dstImage, g_midImage, g_grayImage, imgHSVMask;//原始图、中间图和效果图
int threshold_value = 60;//阈值
int size = 800;//面积因子
float start_time,end_time,sum_time;//处理时间
//-----------------------------------【全局函数声明部分】--------------------------------------
//描述:全局函数声明
//-----------------------------------------------------------------------------------------------
void ThinSubiteration1(Mat & pSrc, Mat & pDst);
void ThinSubiteration2(Mat & pSrc, Mat & pDst);
void normalizeLetter(Mat & inputarray, Mat & outputarray);
void Line_reflect(Mat & inputarray, Mat & outputarray);
void Delete_smallregions(Mat & pSrc, Mat & pDst);
//-----------------------------------【main( )函数】--------------------------------------------
//描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( )
{
//载入原始图
g_srcImage = imread("3.jpg"); //读取素材图
start_time = getTickCount();//开始处理时间
//显示灰度图
cvtColor(g_srcImage, g_grayImage, CV_RGB2GRAY);
imshow("【灰度图】", g_grayImage);
//二值化
threshold(g_grayImage, imgHSVMask, threshold_value, 255, THRESH_BINARY);
g_midImage = Mat::zeros(imgHSVMask.size(), CV_8UC1); //绘制
//去除小面积区域
Delete_smallregions(imgHSVMask, g_midImage);
imshow("【目标图】", g_midImage);
imwrite("Target_image3.jpg", g_midImage);
//normalizeLetter显示效果图
normalizeLetter(g_midImage,g_dstImage);
imshow("【效果图】", g_dstImage);
//曲线映射到原图
/*threshold(g_gr