From f062405bec8178e2c50a8a8b0cdb052ac8d5e47f Mon Sep 17 00:00:00 2001 From: Micooz Date: Sun, 15 Feb 2015 13:25:00 +0800 Subject: [PATCH] Improve: a better sort algorithm. --- src/core/chars_segment.cpp | 50 +++---------------------------------- src/include/chars_segment.h | 3 --- 2 files changed, 4 insertions(+), 49 deletions(-) diff --git a/src/core/chars_segment.cpp b/src/core/chars_segment.cpp index 762d77c..6738174 100644 --- a/src/core/chars_segment.cpp +++ b/src/core/chars_segment.cpp @@ -224,9 +224,11 @@ int CCharsSegment::charsSegment(Mat input, vector& resultVec) if (vecRect.size() == 0) return -3; - vector sortedRect; + vector sortedRect(vecRect); //对符合尺寸的图块按照从左到右进行排序 - SortRect(vecRect, sortedRect); + std::sort(sortedRect.begin(), sortedRect.end(), [] (const Rect &r1, const Rect &r2) { + return r1.x < r2.x; + }); int specIndex = 0; //获得指示城市的特定Rect,如苏A的"A" @@ -292,50 +294,6 @@ int CCharsSegment::charsSegment(Mat input, vector& resultVec) return 0; } -//! 将Rect按位置从左到右进行排序 -int CCharsSegment::SortRect(const vector& vecRect, vector& out) -{ - vector orderIndex; - vector xpositions; - - for (int i = 0; i < vecRect.size(); i++) - { - orderIndex.push_back(i); - xpositions.push_back(vecRect[i].x); - } - - float min; - int minIdx=0; - for(int i=0; i< xpositions.size(); i++) - { - min=xpositions[i]; - minIdx=i; - for(int j=i; j& vecRect, vector& outRect, int specIndex); - //! 将Rect按位置从左到右进行排序 - int SortRect(const vector& vecRect, vector& out); - //! 设置变量 inline void setLiuDingSize(int param){ m_LiuDingSize = param;} inline void setColorThreshold(int param){ m_ColorThreshold = param;}