perf.优化部分识别roi位置

This commit is contained in:
MistEO
2021-10-28 21:22:50 +08:00
parent 2f6c1d51a5
commit d4de831ece
2 changed files with 14 additions and 13 deletions

View File

@@ -842,6 +842,7 @@
},
"InfrastSkillsHash": {
"algorithm": "justReturn",
"rectMove_Doc": "基于笑脸的位置移动",
"rectMove": [
-8,
-202,
@@ -882,6 +883,7 @@
"histThreshold": 100,
"histThreshold_Doc": "该任务里的Hist阈值是特化了拿来做灰度图平均值的懒得重新写个字段了",
"cache": false,
"rectMove_Doc": "基于笑脸的位置移动",
"rectMove": [
-8,
-42,
@@ -946,6 +948,7 @@
"histThreshold": 20,
"Doc": "这里的templThreshold作为进度条最小灰度阈值使用histThreshold作为进度条相邻点最大变化阈值使用。懒得重新弄个字段了",
"cache": false,
"rectMove_Doc": "基于笑脸的位置移动",
"rectMove": [
21,
8,
@@ -1247,8 +1250,8 @@
255
],
"rectMove": [
-8,
-260,
13,
-252,
82,
320
]
@@ -1258,8 +1261,8 @@
"cache": false,
"templThreshold": 0.8,
"rectMove": [
-20,
-100,
0,
-95,
70,
50
]

View File

@@ -38,10 +38,8 @@ bool asst::InfrastMoodImageAnalyzer::mood_detect()
{
const auto upper_task_ptr = resource.task().task_ptr("InfrastSkillsUpper");
const auto lower_task_ptr = resource.task().task_ptr("InfrastSkillsLower");
const auto hash_task_ptr = resource.task().task_ptr("InfrastSkillsHash");
const auto prg_task_ptr = resource.task().task_ptr("InfrastOperMoodProgressBar");
Rect hash_rect_move = hash_task_ptr->rect_move;
Rect progress_rect_move = prg_task_ptr->rect_move;
std::vector<Rect> roi_vec = {
@@ -174,8 +172,8 @@ bool asst::InfrastMoodImageAnalyzer::hash_calc()
for (auto&& info : m_result) {
Rect hash_rect = hash_rect_move;
hash_rect.x += info.rect.x;
hash_rect.y += info.rect.y;
hash_rect.x += info.smiley.rect.x;
hash_rect.y += info.smiley.rect.y;
info.hash = calc_hash(hash_rect);
}
return true;
@@ -192,13 +190,13 @@ bool asst::InfrastMoodImageAnalyzer::selected_analyze()
for (auto&& info : m_result) {
Rect selected_rect = rect_move;
selected_rect.x += info.rect.x;
selected_rect.y += info.rect.y;
selected_rect.x += info.smiley.rect.x;
selected_rect.y += info.smiley.rect.y;
selected_analyzer.set_roi(selected_rect);
if (selected_analyzer.analyze()) {
info.selected = true;
#ifdef LOG_TRACE
cv::putText(m_image_draw, "SELECTED", cv::Point(selected_rect.x, selected_rect.y + 30), 1, 1, cv::Scalar(0, 0, 255), 2);
cv::putText(m_image_draw, "SELECTED", cv::Point(selected_rect.x, selected_rect.y + 50), 1, 1, cv::Scalar(0, 0, 255), 2);
#endif
}
}
@@ -216,8 +214,8 @@ bool asst::InfrastMoodImageAnalyzer::working_analyze()
for (auto&& info : m_result) {
Rect working_rect = rect_move;
working_rect.x += info.rect.x;
working_rect.y += info.rect.y;
working_rect.x += info.smiley.rect.x;
working_rect.y += info.smiley.rect.y;
working_analyzer.set_roi(working_rect);
if (working_analyzer.analyze()) {
info.working = true;