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 \
HGScannerLib \
HGUpload \
HGWebScan \
HGWebService \
HGUpgrade \
HGFWUpgrade \
HGScanner \
HGOCR \
HGScanner2
HGImgFmt.depends = \
@ -46,11 +43,6 @@ HGScannerLib.depends = \
HGUpload.depends = \
HGBase
HGWebScan.depends = \
HGBase \
HGImgFmt \
HGImgProc
HGWebService.depends = \
HGBase \
HGImgFmt \
@ -66,21 +58,9 @@ HGFWUpgrade.depends = \
HGImgProc \
HGVersion
HGScanner.depends = \
HGBase \
HGImgFmt \
HGImgProc \
HGVersion
HGOCR.depends = \
HGBase \
HGImgFmt \
HGImgProc
HGScanner2.depends = \
HGBase \
HGImgFmt \
HGImgProc \
HGVersion \
HGSaneUser \
HGOCR
HGSaneUser

View File

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

View File

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

View File

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

View File

@ -17,12 +17,7 @@ public:
~setPicClrTool();
void getGrayTable(uchar* table, size_t length = 256);
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 getRGBTable(uchar* table, size_t length = 1024);
void setColorMode(int colorMode);