1)去掉不需要编译的工程

2)调整自定义曲线数据
This commit is contained in:
luoliangyi 2023-08-07 16:25:37 +08:00
parent c338d36ce8
commit 50ac4f6cdf
5 changed files with 46 additions and 127 deletions

View File

@ -10,12 +10,9 @@ SUBDIRS += \
HGVersion \ HGVersion \
HGScannerLib \ HGScannerLib \
HGUpload \ HGUpload \
HGWebScan \
HGWebService \ HGWebService \
HGUpgrade \ HGUpgrade \
HGFWUpgrade \ HGFWUpgrade \
HGScanner \
HGOCR \
HGScanner2 HGScanner2
HGImgFmt.depends = \ HGImgFmt.depends = \
@ -46,11 +43,6 @@ HGScannerLib.depends = \
HGUpload.depends = \ HGUpload.depends = \
HGBase HGBase
HGWebScan.depends = \
HGBase \
HGImgFmt \
HGImgProc
HGWebService.depends = \ HGWebService.depends = \
HGBase \ HGBase \
HGImgFmt \ HGImgFmt \
@ -66,21 +58,9 @@ HGFWUpgrade.depends = \
HGImgProc \ HGImgProc \
HGVersion HGVersion
HGScanner.depends = \
HGBase \
HGImgFmt \
HGImgProc \
HGVersion
HGOCR.depends = \
HGBase \
HGImgFmt \
HGImgProc
HGScanner2.depends = \ HGScanner2.depends = \
HGBase \ HGBase \
HGImgFmt \ HGImgFmt \
HGImgProc \ HGImgProc \
HGVersion \ HGVersion \
HGSaneUser \ HGSaneUser
HGOCR

View File

@ -9,12 +9,9 @@ SUBDIRS += \
HGVersion \ HGVersion \
HGScannerLib \ HGScannerLib \
HGUpload \ HGUpload \
HGWebScan \
HGWebService \ HGWebService \
HGUpgrade \ HGUpgrade \
HGFWUpgrade \ HGFWUpgrade \
HGScanner \
HGOCR \
HGScanner2 HGScanner2
HGImgFmt.depends = \ HGImgFmt.depends = \
@ -42,11 +39,6 @@ HGScannerLib.depends = \
HGUpload.depends = \ HGUpload.depends = \
HGBase HGBase
HGWebScan.depends = \
HGBase \
HGImgFmt \
HGImgProc
HGWebService.depends = \ HGWebService.depends = \
HGBase \ HGBase \
HGImgFmt \ HGImgFmt \
@ -62,21 +54,9 @@ HGFWUpgrade.depends = \
HGImgProc \ HGImgProc \
HGVersion HGVersion
HGScanner.depends = \
HGBase \
HGImgFmt \
HGImgProc \
HGVersion
HGOCR.depends = \
HGBase \
HGImgFmt \
HGImgProc
HGScanner2.depends = \ HGScanner2.depends = \
HGBase \ HGBase \
HGImgFmt \ HGImgFmt \
HGImgProc \ HGImgProc \
HGVersion \ HGVersion \
HGTwainUser \ HGTwainUser
HGOCR

View File

@ -1380,10 +1380,11 @@ void hg_settingdialog::slot_gammaButtonClicked()
colorMode = 1; colorMode = 1;
QList<QPoint> keyTable; QList<QPoint> keyTable;
for (int i = 0; i < m_gammaData.pt_count; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GRAY]; ++i)
{ {
QPoint pt(m_gammaData.keypoint[i].x, m_gammaData.keypoint[i].y); uchar x = m_gammaData.pt_gray[i];
keyTable.append(pt); uchar y = m_gammaData.table[256 * GAMMA_INDEX_GRAY + x];
keyTable.append(QPoint(x, y));
} }
if (!keyTable.empty()) if (!keyTable.empty())
@ -1396,31 +1397,35 @@ void hg_settingdialog::slot_gammaButtonClicked()
colorMode = 0; colorMode = 0;
QList<QPoint> keyTable; QList<QPoint> keyTable;
for (int i = 0; i < m_gammaData.pt_count; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_COLOR]; ++i)
{ {
QPoint pt(m_gammaData.keypoint[i].x, m_gammaData.keypoint[i].y); uchar x = m_gammaData.pt_color[i];
keyTable.append(pt); uchar y = m_gammaData.table[256 * GAMMA_INDEX_COLOR + x];
keyTable.append(QPoint(x, y));
} }
QList<QPoint> rKeyTable; QList<QPoint> rKeyTable;
for (int i = 0; i < m_gammaData.pt_count_r; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_RED]; ++i)
{ {
QPoint pt(m_gammaData.keypoint_r[i].x, m_gammaData.keypoint_r[i].y); uchar x = m_gammaData.pt_red[i];
rKeyTable.append(pt); uchar y = m_gammaData.table[256 * GAMMA_INDEX_RED + x];
rKeyTable.append(QPoint(x, y));
} }
QList<QPoint> gKeyTable; QList<QPoint> gKeyTable;
for (int i = 0; i < m_gammaData.pt_count_g; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GREEN]; ++i)
{ {
QPoint pt(m_gammaData.keypoint_g[i].x, m_gammaData.keypoint_g[i].y); uchar x = m_gammaData.pt_green[i];
gKeyTable.append(pt); uchar y = m_gammaData.table[256 * GAMMA_INDEX_GREEN + x];
gKeyTable.append(QPoint(x, y));
} }
QList<QPoint> bKeyTable; QList<QPoint> bKeyTable;
for (int i = 0; i < m_gammaData.pt_count_b; ++i) for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_BLUE]; ++i)
{ {
QPoint pt(m_gammaData.keypoint_b[i].x, m_gammaData.keypoint_b[i].y); uchar x = m_gammaData.pt_blue[i];
bKeyTable.append(pt); uchar y = m_gammaData.table[256 * GAMMA_INDEX_BLUE + x];
bKeyTable.append(QPoint(x, y));
} }
QVector<QList<QPoint>> keyTableList; QVector<QList<QPoint>> keyTableList;
@ -1451,85 +1456,68 @@ void hg_settingdialog::slot_gammaButtonClicked()
{ {
QList<QPoint> keyTable = dlg.getGrayKeyTable(); QList<QPoint> keyTable = dlg.getGrayKeyTable();
m_gammaData.pt_count = HGMIN(4, keyTable.size()); m_gammaData.count[GAMMA_INDEX_GRAY] = HGMIN(4, keyTable.size());
int i = 0; int i = 0;
for (QPoint pt : keyTable) for (QPoint pt : keyTable)
{ {
if (i >= 4) if (i >= 4)
break; break;
m_gammaData.keypoint[i].x = pt.x(); m_gammaData.pt_gray[i] = pt.x();
m_gammaData.keypoint[i].y = pt.y();
++i; ++i;
} }
uchar data[256]; dlg.getGrayTable(m_gammaData.table, 256);
dlg.getGrayTable(data, 256);
for (int i = 0; i < 256; ++i)
{
m_gammaData.table[i] = data[i];
}
} }
else else
{ {
QVector<QList<QPoint>> keyTableList = dlg.getRGBKeyTable(); QVector<QList<QPoint>> keyTableList = dlg.getRGBKeyTable();
m_gammaData.pt_count = HGMIN(4, keyTableList[0].size()); m_gammaData.count[GAMMA_INDEX_COLOR] = HGMIN(4, keyTableList[0].size());
int i = 0; int i = 0;
for (QPoint pt : keyTableList[0]) for (QPoint pt : keyTableList[0])
{ {
if (i >= 4) if (i >= 4)
break; break;
m_gammaData.keypoint[i].x = pt.x(); m_gammaData.pt_color[i] = pt.x();
m_gammaData.keypoint[i].y = pt.y();
++i; ++i;
} }
m_gammaData.pt_count_r = HGMIN(4, keyTableList[1].size()); m_gammaData.count[GAMMA_INDEX_RED] = HGMIN(4, keyTableList[1].size());
i = 0; i = 0;
for (QPoint pt : keyTableList[1]) for (QPoint pt : keyTableList[1])
{ {
if (i >= 4) if (i >= 4)
break; break;
m_gammaData.keypoint_r[i].x = pt.x(); m_gammaData.pt_red[i] = pt.x();
m_gammaData.keypoint_r[i].y = pt.y();
++i; ++i;
} }
m_gammaData.pt_count_g = HGMIN(4, keyTableList[2].size()); m_gammaData.count[GAMMA_INDEX_GREEN] = HGMIN(4, keyTableList[2].size());
i = 0; i = 0;
for (QPoint pt : keyTableList[2]) for (QPoint pt : keyTableList[2])
{ {
if (i >= 4) if (i >= 4)
break; break;
m_gammaData.keypoint_g[i].x = pt.x(); m_gammaData.pt_green[i] = pt.x();
m_gammaData.keypoint_g[i].y = pt.y();
++i; ++i;
} }
m_gammaData.pt_count_b = HGMIN(4, keyTableList[3].size()); m_gammaData.count[GAMMA_INDEX_BLUE] = HGMIN(4, keyTableList[3].size());
i = 0; i = 0;
for (QPoint pt : keyTableList[3]) for (QPoint pt : keyTableList[3])
{ {
if (i >= 4) if (i >= 4)
break; break;
m_gammaData.keypoint_b[i].x = pt.x(); m_gammaData.pt_blue[i] = pt.x();
m_gammaData.keypoint_b[i].y = pt.y();
++i; ++i;
} }
uchar data[256 * 3]; dlg.getRGBTable(m_gammaData.table + 256, 256 * 4);
dlg.getRGBTable(data, 256 * 3);
for (int i = 0; i < 256; ++i)
{
m_gammaData.table[i] = data[i * 3 + 2];
m_gammaData.table[i + 256] = data[i * 3 + 1];
m_gammaData.table[i + 512] = data[i * 3 + 0];
}
} }
QVector<int> type = dlg.getRgbAndColorType(); QVector<int> type = dlg.getRgbAndColorType();

View File

@ -28,15 +28,18 @@ setPicClrTool::~setPicClrTool()
void setPicClrTool::getGrayTable(uchar *table, size_t length) void setPicClrTool::getGrayTable(uchar *table, size_t length)
{ {
if (length != 256)
throw "length is not 256.";
QVector<int> gray = getGrayALLPoint(); QVector<int> gray = getGrayALLPoint();
for (size_t i = 0; i < length; i++) for (size_t i = 0; i < 256; i++)
table[i] = static_cast<uchar>(gray[static_cast<int>(i)]); table[i] = static_cast<uchar>(gray[i]);
} }
void setPicClrTool::getRGBTable(uchar *table, size_t length) void setPicClrTool::getRGBTable(uchar *table, size_t length)
{ {
if (length != 768) if (length != 1024)
throw "length is not 768."; throw "length is not 1024.";
QVector<int> rgb = getRgbALLPoint(); QVector<int> rgb = getRgbALLPoint();
QVector<int> red = getRedALLPoint(); QVector<int> red = getRedALLPoint();
@ -46,40 +49,13 @@ void setPicClrTool::getRGBTable(uchar *table, size_t length)
for (size_t i = 0; i < 256; i++) for (size_t i = 0; i < 256; i++)
{ {
//if (i == 255) table[i] = static_cast<uchar>(rgb[i]);
// int a = 0; table[256 + i] = static_cast<uchar>(red[i]);
//table member order is B\G\R table[256 * 2 + i] = static_cast<uchar>(green[i]);
table[i * 3 + 0] = static_cast<uchar>(blue[rgb[static_cast<int>(i)]]); table[256 * 3 + i] = static_cast<uchar>(blue[i]);
table[i * 3 + 1] = static_cast<uchar>(green[rgb[static_cast<int>(i)]]);
table[i * 3 + 2] = static_cast<uchar>(red[rgb[static_cast<int>(i)]]);
} }
} }
//void setPicClrTool::setGrayTable(const uchar *table, size_t length)
//{
// QVector<int> gray;
// for (size_t i = 0; i < length; i++)
// gray[static_cast<int>(i)] = int(table[i]);
// //ui->widget->setGrayALLPoint(gray);
//}
//void setPicClrTool::setRGBTable(const uchar *table, size_t length)
//{
// QVector<int> rgb;
// QVector<int> red;
// QVector<int> green;
// QVector<int> blue;
// for(int i = 0; i < 256; i++){
// rgb.append(i);
// }
// for (size_t i = 0; i < length; i++){
// red.append(int(table[i * 3 + 0]));
// green.append(int(table[i * 3 + 1]));
// blue.append(int(table[i * 3 + 2]));
// }
//}
void setPicClrTool::setColorMode(int colorMode) void setPicClrTool::setColorMode(int colorMode)
{ {
QVariant v(6); QVariant v(6);

View File

@ -17,12 +17,7 @@ public:
~setPicClrTool(); ~setPicClrTool();
void getGrayTable(uchar* table, size_t length = 256); void getGrayTable(uchar* table, size_t length = 256);
void getRGBTable(uchar* table, size_t length = 1024);
void getRGBTable(uchar* table, size_t length = 768);
// void setGrayTable(const uchar* table, size_t length = 256);
// void setRGBTable(const uchar* table, size_t length = 768);
void setColorMode(int colorMode); void setColorMode(int colorMode);