Add print image
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <numeric>
|
#include <numeric>
|
||||||
#include <raylib.h>
|
|
||||||
|
|
||||||
namespace Similarity
|
namespace Similarity
|
||||||
{
|
{
|
||||||
@@ -12,14 +11,15 @@ namespace Similarity
|
|||||||
uint8_t *a = (uint8_t *)d1;
|
uint8_t *a = (uint8_t *)d1;
|
||||||
uint8_t *b = (uint8_t *)d2;
|
uint8_t *b = (uint8_t *)d2;
|
||||||
float sum = 0.0f;
|
float sum = 0.0f;
|
||||||
for (size_t i = 0; i < sizeof(Dna); ++i) {
|
for (size_t i = 0; i < sizeof(Dna); ++i)
|
||||||
|
{
|
||||||
float diff = static_cast<float>(a[i]) - static_cast<float>(b[i]);
|
float diff = static_cast<float>(a[i]) - static_cast<float>(b[i]);
|
||||||
sum += diff * diff;
|
sum += diff * diff;
|
||||||
}
|
}
|
||||||
|
|
||||||
float distance = std::sqrt(sum);
|
float distance = std::sqrt(sum);
|
||||||
float max_distance = 255.0f * std::sqrt(static_cast<float>(sizeof(Dna)));
|
float max_distance = 255.0f * std::sqrt(static_cast<float>(sizeof(Dna)));
|
||||||
return distance / max_distance;
|
return 1 - (distance / max_distance);
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo: use int8_t insted of uint8_t and map data
|
// todo: use int8_t insted of uint8_t and map data
|
||||||
@@ -148,7 +148,7 @@ namespace Similarity
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1 - (dp[len][len] / float (len + len));
|
return 1 - (dp[len][len] / float(len + len));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,4 +52,5 @@ private:
|
|||||||
std::vector<std::array<float, numberOfFunc>> similTable;
|
std::vector<std::array<float, numberOfFunc>> similTable;
|
||||||
|
|
||||||
void setUpTable();
|
void setUpTable();
|
||||||
|
void drawToFile();
|
||||||
};
|
};
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
#include <rlImGui.h>
|
#include <rlImGui.h>
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
#include <raylib.h>
|
#include <raylib.h>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
const char select_user_id[] = "SELECT USER_ID FROM user_table GROUP BY USER_ID;";
|
const char select_user_id[] = "SELECT USER_ID FROM user_table GROUP BY USER_ID;";
|
||||||
|
|
||||||
@@ -136,6 +137,10 @@ void Vapp::draw()
|
|||||||
{
|
{
|
||||||
setUpTable();
|
setUpTable();
|
||||||
}
|
}
|
||||||
|
if (ImGui::MenuItem("DrawToFile", nullptr, false, enableAll))
|
||||||
|
{
|
||||||
|
drawToFile();
|
||||||
|
}
|
||||||
ImGui::EndMainMenuBar();
|
ImGui::EndMainMenuBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -331,7 +336,39 @@ void Vapp::setUpTable()
|
|||||||
}
|
}
|
||||||
|
|
||||||
sql::reset(get_gen_stmt);
|
sql::reset(get_gen_stmt);
|
||||||
|
|
||||||
|
int64_t id = ids[selected_id_index];
|
||||||
|
char buff[50];
|
||||||
|
sprintf(buff, "%ld.txt", id);
|
||||||
|
std::ofstream file(buff);
|
||||||
|
|
||||||
|
file << "| index | euclidean_distance | cosine_similarity | cosine_similarity_int | hamming_distance | hamming_distance_without_seeds | levenshtein_distance |\n";
|
||||||
|
file << "| --- | --- | --- | --- | --- | --- | --- |\n";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (size_t i = 0; i < similTable.size(); i++)
|
||||||
|
{
|
||||||
|
file << "|" << i << "|";
|
||||||
|
for (size_t j = 0; j < similTable[i].size(); j++)
|
||||||
|
{
|
||||||
|
file << similTable[i][j] << "|";
|
||||||
|
}
|
||||||
|
file << "\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sql::finalize(get_gen_stmt);
|
sql::finalize(get_gen_stmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Vapp::drawToFile()
|
||||||
|
{
|
||||||
|
enableAll = false;
|
||||||
|
int64_t id = ids[selected_id_index];
|
||||||
|
char buff[50];
|
||||||
|
sprintf(buff, "%ld_%d.png", id, selected_gen);
|
||||||
|
Image image = LoadImageFromTexture(bigTexture.texture);
|
||||||
|
ExportImage(image, buff);
|
||||||
|
UnloadImage(image);
|
||||||
|
enableAll = true;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user