Merge pull request #1 from lloi7/new

使用之前的候选区寻找方式
This commit is contained in:
xinyang
2019-05-04 14:07:07 +08:00
committed by GitHub
16 changed files with 12402 additions and 12359 deletions

View File

@@ -13,8 +13,7 @@
void showArmorBoxVector(std::string windows_name, const cv::Mat &src, const std::vector<cv::Rect2d> &armor_box); void showArmorBoxVector(std::string windows_name, const cv::Mat &src, const std::vector<cv::Rect2d> &armor_box);
void showArmorBox(std::string windows_name, const cv::Mat &src, cv::Rect2d armor_box); void showArmorBox(std::string windows_name, const cv::Mat &src, cv::Rect2d armor_box);
void showContours(std::string windows_name, const cv::Mat &src, const std::vector<LightBlob> &light_blobs); void showContours(std::string windows_name, const cv::Mat &src, const std::vector<LightBlob> &light_blobs);
void showArmorBoxClass(std::string window_names, const cv::Mat &src, vector<cv::Rect2d> boxes_one, void showArmorBoxClass(std::string window_names, const cv::Mat &src, vector<cv::Rect2d> boxes[10]);
vector<cv::Rect2d> boxes_two, vector<cv::Rect2d> boxes_three);
#endif /* _SHOW_IMAGES_H_ */ #endif /* _SHOW_IMAGES_H_ */

View File

@@ -1,6 +1,7 @@
// //
// Created by xinyang on 19-3-27. // Created by xinyang on 19-3-27.
// //
#define LOG_LEVEL LOG_NONE
#include <log.h> #include <log.h>
#include <options/options.h> #include <options/options.h>
#include <show_images/show_images.h> #include <show_images/show_images.h>
@@ -40,14 +41,14 @@ void ArmorFinder::run(cv::Mat &src) {
tracker = TrackerToUse::create(); tracker = TrackerToUse::create();
tracker->init(src_use, armor_box); tracker->init(src_use, armor_box);
state = TRACKING_STATE; state = TRACKING_STATE;
LOGW("into track"); LOGM(STR_CTR(WORD_LIGHT_CYAN, "into track"));
} }
} }
break; break;
case TRACKING_STATE: case TRACKING_STATE:
if(!stateTrackingTarget(src_use)){ if(!stateTrackingTarget(src_use)){
state = SEARCHING_STATE; state = SEARCHING_STATE;
//std::cout << "into search!" << std::endl; LOGM(STR_CTR(WORD_LIGHT_YELLOW ,"into search!"));
} }
break; break;
case STANDBY_STATE: case STANDBY_STATE:
@@ -59,11 +60,14 @@ void ArmorFinder::run(cv::Mat &src) {
#define FOCUS_PIXAL (0.36/0.48*640) #define FOCUS_PIXAL (0.36/0.48*640)
bool ArmorFinder::sendBoxPosition() { bool ArmorFinder::sendBoxPosition() {
static int dx_add = 0;
auto rect = armor_box; auto rect = armor_box;
double dx = rect.x + rect.width/2 - 320; double dx = rect.x + rect.width/2 - 320 - 8;
double dy = rect.y + rect.height/2 - 240; dx_add += dx;
dx = dx + dx_add * 0;
double dy = rect.y + rect.height/2 - 240 - 30;
double yaw = atan(dx / FOCUS_PIXAL) * 180 / 3.14159265459; double yaw = atan(dx / FOCUS_PIXAL) * 180 / 3.14159265459;
double pitch = atan(dy / FOCUS_PIXAL) * 180 / 3.14159265459; double pitch = atan(dy / FOCUS_PIXAL) * 180 / 3.14159265459;
uart.sendTarget(yaw, pitch, 0); uart.sendTarget(yaw, -pitch, 0);
return true; return true;
} }

View File

@@ -92,7 +92,7 @@ MatrixXd Classifier::softmax(const MatrixXd &input){
return tmp.array().exp() / tmp.array().exp().sum(); return tmp.array().exp() / tmp.array().exp().sum();
} }
vector<vector<MatrixXd>> max_pool(const vector<vector<MatrixXd>> &input, int size){ vector<vector<MatrixXd>> Classifier::max_pool(const vector<vector<MatrixXd>> &input, int size){
vector<vector<MatrixXd>> output; vector<vector<MatrixXd>> output;
for(int sample=0; sample<input.size(); sample++) { for(int sample=0; sample<input.size(); sample++) {
vector<MatrixXd> sub; vector<MatrixXd> sub;

View File

@@ -31,10 +31,15 @@ static void pipelineLightBlobPreprocess(cv::Mat &src) {
} }
static bool findLightBlobs(const cv::Mat &src, LightBlobs &light_blobs) { static bool findLightBlobs(const cv::Mat &src, LightBlobs &light_blobs) {
// static cv::Mat src_bin; static cv::Mat src_gray, src_bin;
if(src.type() == CV_8UC3){
cvtColor(src, src_gray, CV_BGR2GRAY);
}else if(src.type() == CV_8UC1){
src_gray = src.clone();
}
std::vector<std::vector<cv::Point> > light_contours; std::vector<std::vector<cv::Point> > light_contours;
cv::findContours(src, light_contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE); cv::findContours(src_gray, light_contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
for (auto &light_contour : light_contours) { for (auto &light_contour : light_contours) {
cv::RotatedRect rect = cv::minAreaRect(light_contour); cv::RotatedRect rect = cv::minAreaRect(light_contour);
if(isValidLightBlob(rect)){ if(isValidLightBlob(rect)){
@@ -114,8 +119,8 @@ static bool findArmorBoxes(LightBlobs &light_blobs, std::vector<cv::Rect2d> &arm
double min_x, min_y, max_x, max_y; double min_x, min_y, max_x, max_y;
min_x = fmin(rect_left.x, rect_right.x); min_x = fmin(rect_left.x, rect_right.x);
max_x = fmax(rect_left.x + rect_left.width, rect_right.x + rect_right.width); max_x = fmax(rect_left.x + rect_left.width, rect_right.x + rect_right.width);
min_y = fmin(rect_left.y, rect_right.y) - 5; min_y = fmin(rect_left.y, rect_right.y) - 3;
max_y = fmax(rect_left.y + rect_left.height, rect_right.y + rect_right.height); max_y = fmax(rect_left.y + rect_left.height, rect_right.y + rect_right.height) + 3;
if (min_x < 0 || max_x > 640 || min_y < 0 || max_y > 480) { if (min_x < 0 || max_x > 640 || min_y < 0 || max_y > 480) {
continue; continue;
} }
@@ -147,31 +152,42 @@ bool judge_light_color(std::vector<LightBlob> &light, std::vector<LightBlob> &co
} }
bool ArmorFinder::stateSearchingTarget(cv::Mat &src) { bool ArmorFinder::stateSearchingTarget(cv::Mat &src) {
cv::Mat split, pmsrc=src.clone(), src_bin; cv::Mat split, src_bin;
LightBlobs light_blobs, pm_light_blobs, light_blobs_real; LightBlobs light_blobs, light_blobs_, light_blobs_real;
std::vector<cv::Rect2d> armor_boxes, boxes_one, boxes_two, boxes_three; std::vector<cv::Rect2d> armor_boxes, boxes_number[10];
armor_box = cv::Rect2d(0,0,0,0);
// cv::resize(src, pmsrc, cv::Size(320, 240)); cv::cvtColor(src, src_gray, CV_BGR2GRAY);
imageColorSplit(src, split, enemy_color); // pipelineLightBlobPreprocess(src_gray);
cv::threshold(split, src_bin, 130, 255, CV_THRESH_BINARY); cv::threshold(src_gray, src_bin, 120, 255, CV_THRESH_BINARY);
imagePreProcess(src_bin);
// cv::imshow("bin", src_bin);
// cv::resize(split, split, cv::Size(640, 480));
// pipelineLightBlobPreprocess(pmsrc);
// if(!findLightBlobs(pmsrc, pm_light_blobs)){
// return false;
// }
if(!findLightBlobs(src_bin, light_blobs)){ if(!findLightBlobs(src_bin, light_blobs)){
return false; return false;
} }
// if(!judge_light_color(light_blobs, pm_light_blobs, light_blobs_real)){
// return false;
// }
if(show_light_blobs){ if(show_light_blobs){
showContours("blobs", split, light_blobs); showContours("blobs", src_bin, light_blobs);
cv::waitKey(1); cv::waitKey(1);
} }
if(!findArmorBoxes(light_blobs, armor_boxes)){
imageColorSplit(src, split, enemy_color);
imagePreProcess(split);
cv::threshold(split, src_bin, 120, 255, CV_THRESH_BINARY);
if(!findLightBlobs(src_bin, light_blobs_)){
return false;
}
if(show_light_blobs){
showContours("blobs_", src_bin, light_blobs_);
cv::waitKey(1);
}
if(!judge_light_color(light_blobs, light_blobs_, light_blobs_real)){
return false;
}
if(show_light_blobs){
showContours("blobs_real", src, light_blobs_real);
cv::waitKey(1);
}
if(!findArmorBoxes(light_blobs_real, armor_boxes)){
return false; return false;
} }
if(show_armor_boxes){ if(show_armor_boxes){
@@ -183,29 +199,21 @@ bool ArmorFinder::stateSearchingTarget(cv::Mat &src) {
cv::Mat roi = src(box).clone(); cv::Mat roi = src(box).clone();
cv::resize(roi, roi, cv::Size(48, 36)); cv::resize(roi, roi, cv::Size(48, 36));
int c = classifier(roi); int c = classifier(roi);
switch(c){ if(c){
case 1: boxes_number[c-1].emplace_back(box);
boxes_one.emplace_back(box);
break;
case 2:
boxes_two.emplace_back(box);
break;
case 3:
boxes_three.emplace_back(box);
break;
} }
} }
if(!boxes_one.empty()){ for(auto box : boxes_number){
armor_box = boxes_one[0]; if(!box.empty()){
}else if(!boxes_two.empty()){ armor_box = box[0];
armor_box = boxes_two[0]; }
}else if(!boxes_three.empty()){ }
armor_box = boxes_three[0];
} else{ if(armor_box == cv::Rect2d(0,0,0,0)){
return false; return false;
} }
if(show_armor_box){ if(show_armor_boxes){
showArmorBoxClass("class", src, boxes_one, boxes_two, boxes_three); showArmorBoxClass("class", src, boxes_number);
} }
}else{ }else{
armor_box = armor_boxes[0]; armor_box = armor_boxes[0];

View File

@@ -18,8 +18,7 @@ void showArmorBoxVector(std::string windows_name, const cv::Mat &src, const std:
imshow(windows_name, image2show); imshow(windows_name, image2show);
} }
void showArmorBoxClass(std::string windows_name, const cv::Mat &src, vector<cv::Rect2d> boxes_one, void showArmorBoxClass(std::string window_names, const cv::Mat &src, vector<cv::Rect2d> boxes[10]){
vector<cv::Rect2d> boxes_two, vector<cv::Rect2d> boxes_three){
static Mat image2show; static Mat image2show;
if (src.type() == CV_8UC1) // 黑白图像 if (src.type() == CV_8UC1) // 黑白图像
{ {
@@ -28,16 +27,17 @@ void showArmorBoxClass(std::string windows_name, const cv::Mat &src, vector<cv::
{ {
image2show = src.clone(); image2show = src.clone();
} }
for (auto &box:boxes_one) { for(int i=0; i<10; i++){
rectangle(image2show, box, Scalar(255, 0, 0), 1); if(!boxes[i].empty()){
for(auto box : boxes[i]){
char buff[2] = {0};
buff[0] = i + '0';
rectangle(image2show, box, Scalar(0, 255, 0), 1);
putText(image2show, buff, Point(box.x+2, box.y+2), cv::FONT_HERSHEY_TRIPLEX, 1, Scalar(255,0,0));
}
}
} }
for (auto &box:boxes_two) { imshow(window_names, image2show);
rectangle(image2show, box, Scalar(0, 255, 0), 1);
}
for (auto &box:boxes_three) {
rectangle(image2show, box, Scalar(0, 0, 255), 1);
}
imshow(windows_name, image2show);
} }
void showArmorBox(std::string windows_name, const cv::Mat &src, cv::Rect2d armor_box) { void showArmorBox(std::string windows_name, const cv::Mat &src, cv::Rect2d armor_box) {

View File

@@ -63,7 +63,6 @@ int main(int argc, char *argv[]) {
} }
Mat energy_src, armor_src; Mat energy_src, armor_src;
ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/"); ArmorFinder armorFinder(ENEMY_BLUE, uart, PROJECT_DIR"/tools/para/");
Energy energy(uart); Energy energy(uart);

View File

@@ -65,11 +65,14 @@ stop:
tCapability.sResolutionRange.iWidthMax * 3); tCapability.sResolutionRange.iWidthMax * 3);
if(mode == 0){ if(mode == 0){
// 不使用自动曝光 // 不使用自动曝光
CameraSetAeState(h_camera, true); CameraSetAeState(h_camera, false);
// 曝光时间10ms // 曝光时间10ms
// CameraSetExposureTime(h_camera, 10000); CameraSetExposureTime(h_camera, 10000);
double t;
CameraGetExposureTime(h_camera, &t);
LOGM("Exposure time: %lfms", t/1000.0);
// 模拟增益4 // 模拟增益4
CameraSetAnalogGain(h_camera, 64); CameraSetAnalogGain(h_camera, 55);
// 使用预设LUT表 // 使用预设LUT表
CameraSetLutMode(h_camera, LUTMODE_PRESET); CameraSetLutMode(h_camera, LUTMODE_PRESET);
// 抗频闪 // 抗频闪
@@ -90,7 +93,7 @@ stop:
/*其他的相机参数设置 /*其他的相机参数设置
例如 CameraSetExposureTime CameraGetExposureTime 设置/读取曝光时间 例如 CameraSetExposureTime CameraGetExposureTime 设置/读取曝光时间
CameraSetImageResolution CameraGetImageResolution 设置/读取分辨率 CameraSetImageResolution CameraGetImageResolution 设置/读取分辨率
CameraSetGamma、CameraSetConrast、CameraSetGain等设置图像伽马、对比度、RGB数字增益等等。 CameraSetGamma、CameraSetContrast、CameraSetGain等设置图像伽马、对比度、RGB数字增益等等。
CameraGetFriendlyName CameraSetFriendlyName 获取/设置相机名称(该名称可写入相机硬件) CameraGetFriendlyName CameraSetFriendlyName 获取/设置相机名称(该名称可写入相机硬件)
*/ */

View File

@@ -4,6 +4,7 @@
#include <uart/uart.h> #include <uart/uart.h>
#include <energy/param_struct_define.h> #include <energy/param_struct_define.h>
#include <log.h>
using std::cout; using std::cout;
using std::cerr; using std::cerr;
@@ -16,7 +17,6 @@ GMAngle_t aim;
Uart::Uart(){ Uart::Uart(){
fd = open("/dev/ttyUSB0", O_RDWR); fd = open("/dev/ttyUSB0", O_RDWR);
if(fd < 0) if(fd < 0)
{ {
@@ -150,12 +150,8 @@ void Uart::sendTarget(float x, float y, float z) {
} }
// 's' + (x) ( 8bit + 8bit ) + (y) ( 8bit + 8bit ) + (z) ( 8bit + 8bit ) + 'e'
uint8_t Uart::receive() { uint8_t Uart::receive() {
uint8_t data; uint8_t data;
while(read(fd, &data, 1) < 1); while(read(fd, &data, 1) < 1);
return data; return data;
} }

View File

@@ -1,7 +1,7 @@
6 6
0.6241298 0.25190517
1.1128483 -0.064696774
0.92715627 -1.1652193
2.6803706 -1.3264673
-2.4037633 2.689583
1.6914424 -1.1748564

View File

@@ -2,453 +2,453 @@
6 6
5 5
5 5
-1.8745673 0.11777049
-1.4418055 -0.5483178
-0.68810487 -1.5183663
-0.42730802 -1.955216
-0.019043377 -2.2450504
-2.2401865 0.32459745
-1.5337001 -0.12860261
-0.5666739 -0.6772694
0.1119876 -1.1496266
0.24716255 -1.407309
-2.2945662 0.3899166
-1.4734446 0.04115204
-0.298631 -0.24398778
0.19550888 -0.64736384
0.45057848 -0.6999237
-2.4559898 0.20561443
-1.097164 0.5234183
-0.035884537 0.23787054
0.23402216 -0.00951052
0.3693794 -0.17350924
-1.7285618 0.34422565
-0.8927671 0.777099
0.026205042 0.72901505
0.19274746 0.6422372
0.029146997 0.06915906
-1.3690577 -0.12754185
-1.2756748 -0.07318786
-0.32751036 -0.096245185
0.3233031 -0.08512626
0.55376107 -0.0075299093
-1.4835969 -0.0027510952
-1.3036382 -0.23676533
-0.75256515 -0.083034575
-0.13608748 0.029986175
0.2254278 -0.026513737
-1.6409502 -0.09559005
-1.4188147 -0.0024623247
-1.1627024 0.0054135886
-0.62049645 0.0006651991
-0.20085949 0.01763169
-2.2059698 -0.014942897
-1.7030506 -0.014311972
-1.5584862 -0.0002753004
-1.2325822 0.03573563
-0.6749467 0.021622038
-2.8320985 -0.1374828
-2.3289032 -0.12651409
-1.811129 -0.16061573
-1.6702974 -0.223415
-1.0760157 -0.10300647
-1.3135052 0.15447244
-0.90016854 0.07344577
-0.47004116 0.049101837
-0.17118637 0.16945939
-0.2732028 0.30799115
-1.3109291 -0.09038234
-0.36519817 0.074387975
-0.10975292 -0.14628443
-0.06533194 0.012496472
-0.559026 0.10561814
-0.8616304 -0.06538503
-0.06857806 0.24966498
0.19276045 0.07688923
-0.14059812 0.0063741454
-0.7283358 0.0680113
-0.57705516 -0.0591892
0.20748538 0.08900544
0.26281402 0.08578229
-0.112977654 -0.045412317
-0.6980696 0.17189993
-0.44812128 -0.23383571
0.40235195 0.14361341
0.26663 0.14279735
-0.10336824 0.108869225
-0.5741328 0.29616848
-0.70127535 0.88802135
-1.1506568 0.9322744
-1.3301972 0.6169363
-1.4370873 0.053218577
-0.9951577 -0.4893802
-0.3111034 1.1701009
-0.5350495 1.309293
-0.78488415 0.7900595
-1.3619742 0.13494617
-1.2252145 -0.53572536
0.10870424 1.7119668
-0.044690743 1.5477047
-0.33280057 1.2634932
-1.180621 0.5294498
-1.5130968 -0.26089707
0.32003295 1.8120517
0.6245109 2.0142252
0.3391734 1.6433445
-0.45662346 0.6699045
-1.2023503 0.025381207
0.66186905 2.2189493
0.6943321 2.2740376
0.753682 1.7443526
-0.05385303 1.200576
-0.69504744 0.6334228
-0.86241025 0.15523954
0.05611875 -0.01665401
0.7984623 -0.118368655
1.4339544 -0.35727102
2.0078037 -0.42292374
-0.6121641 0.32598874
0.3216552 -0.21099696
0.7244501 -0.20522207
1.4381241 -0.25549328
1.9696213 -0.17338459
-0.29659018 0.10133018
0.13415621 -0.13074248
0.61756736 -0.11154948
1.0113128 -0.15071136
1.3834459 -0.22535364
0.12413465 0.33406344
0.3135587 -0.036810637
0.32853445 0.099401385
0.7981063 -0.20969932
0.83142936 -0.13488947
-0.004516094 0.16889526
0.32636595 0.074462764
0.55108666 -0.16236131
0.6248727 -0.046184797
0.60938156 0.023801776
-0.38326544 -0.9323588
-1.2629062 -0.58124906
-0.385575 0.18694697
0.11398253 0.2679367
0.40000448 0.33944207
-1.0602297 -0.79266095
-1.1948771 -0.17053536
-0.6945023 0.114198804
-0.4127804 0.4833294
0.029964926 0.37498808
-1.4086407 -0.90027314
-1.3599807 -0.49293894
-1.3076004 0.01712811
-1.1330422 0.31062165
-0.38810351 0.3294721
-2.1059783 -1.3969829
-1.8239182 -0.9609437
-1.7029382 -0.4146537
-1.4902409 -0.12628987
-0.91088384 0.09289634
-3.230572 -2.01327
-2.4590926 -1.6878839
-1.9471443 -1.020883
-1.860621 -0.51367843
-1.3370123 -0.25005263
-0.5690341 0.3150389
-0.33530146 -1.0783674
0.31661218 -2.7555757
0.8375982 -3.983991
1.1338086 -4.5347676
-1.3648574 0.6119982
-0.8348736 -0.41981643
0.36666754 -1.6696591
1.1275568 -2.7729795
1.1844105 -3.2745647
-1.8321881 0.9486962
-0.78104144 0.14917418
0.59508055 -0.67725325
1.2501543 -1.3731288
1.2034286 -1.9631144
-1.6087818 0.853969
-0.6121007 0.54386574
0.693586 0.1226466
1.2163337 -0.43811196
1.1292332 -0.99324924
-0.6255259 1.1727126
0.0911698 0.92385554
0.78314143 0.9976169
0.9095932 0.50470996
0.5689121 -0.16251346
-3.2688649 0.111192286
-1.2751737 -0.0311233
0.7530108 -0.06703233
1.5721122 -0.0056416607
2.11933 -0.13427663
-2.9633296 -0.0059515433
-1.3632398 -0.10615259
0.11986004 -0.09087167
1.1412225 0.072213285
1.8641368 -0.09585085
-1.9467463 -0.12161211
-0.9146176 0.05298058
-0.10545669 -0.04786352
0.49356145 -0.05641162
1.3669914 0.073793665
-1.7783622 -0.05133933
-0.99905616 0.0063234954
-0.28957212 -0.11314615
0.13239379 -0.075407416
0.9921155 -0.16874631
-2.1976538 0.0452455
-1.0333587 0.047273546
-0.3801185 0.022022702
0.021550074 -0.1461922
0.5849712 -0.07056173
-0.7216267 -0.0926505
-0.36925313 -0.2730682
-0.5770921 -0.26554346
-0.89754397 -0.34648055
-0.9315221 -0.11837572
-0.17996566 0.05535075
0.5721206 -0.15645643
0.46629494 -0.34763718
-0.11679081 -0.551588
-0.8407021 -0.3841269
0.14923953 0.1616999
1.1722741 -0.067517325
1.0859729 -0.44082755
-0.08064234 -0.5951961
-1.1707838 -0.48410118
0.527985 -0.017882127
1.556374 -0.20971838
1.3262485 -0.4876452
0.052869447 -0.5433759
-1.0933924 -0.66698676
0.8913072 0.076961294
1.8925939 -0.16057712
1.1744183 -0.32178354
-0.16056827 -0.4739331
-0.96226853 -0.43045306
-2.0482447 -0.7695584
-2.1394062 0.120984636
-2.3160622 0.562472
-1.5373954 0.41816708
-1.0280651 0.17464462
-1.0137186 -0.54170316
-1.1347228 0.21317379
-1.2650911 0.24528086
-1.3904438 0.26707074
-1.4724954 0.13246953
-0.6152145 -0.44595376
-0.38191465 0.21264245
-0.6525277 0.2402921
-1.2026839 0.1721093
-1.574993 0.008216559
-0.14897716 -0.20339474
0.40652698 0.14848676
0.22212738 0.37409306
-0.7051095 0.17518179
-1.6179065 -0.11521746
0.12883945 0.3209798
0.92052716 0.60100836
0.71651196 0.44183603
-0.1521632 0.33679137
-1.3601139 0.15469958
-1.3278087 -0.5839434
0.091166034 -0.4227066
0.70035547 -0.49117723
0.85970676 -0.48467872
1.4728521 -0.56445146
-0.4685758 -1.1456538
0.67533374 -0.6834423
1.2041222 -0.654748
0.91583323 -0.22800747
1.3638756 -0.022758592
-0.21221842 -1.0613276
0.46413553 -0.6385294
0.6931065 -0.05707361
0.5078553 0.16950387
1.0690873 0.20175189
-0.2822384 -0.9398203
-0.18992352 -0.15568656
-0.30851105 0.3859468
-0.48985106 0.39794713
-0.112165235 0.36458206
-0.6343776 -0.69859344
-0.97740346 -0.17326379
-1.2637299 0.20072784
-1.1870348 0.390084
-0.65784734 0.555071
-2.275478 -0.04178154
-1.5841419 0.21562038
0.59182155 0.37848094
1.7027438 0.14019106
2.2658849 0.14371184
-2.0428355 0.47437635
-0.9335362 0.90888536
0.25750664 1.168888
1.0987146 0.60219216
1.5473177 0.3251563
-0.8157582 0.7930082
-0.23004234 1.2972649
0.3001771 1.0530943
0.6583938 0.77613246
1.0895797 0.5001188
-0.093778014 0.5152648
0.08269198 0.978894
0.17656319 0.94284105
0.3352879 0.45030168
1.0185977 0.2261107
-0.6558476 -0.022718275
0.4106111 0.28039193
0.3651244 0.34578055
0.3434926 0.21017691
0.78885883 0.1464505
0.9312759 1.2343447
0.45665312 0.18821116
0.87845147 -0.71521515
1.4286675 -1.3032252
1.9387178 -1.9630777
0.0055226237 1.4947205
-0.11264928 0.9587029
0.69314396 0.24647994
1.5066721 -0.097875305
1.5526584 -0.1934879
-0.15990084 1.7100966
0.10977341 1.5319225
0.7288155 1.3799523
1.5179793 1.1618152
1.5454628 1.0889668
0.42554915 1.7062534
0.6133954 1.7905279
1.1112447 1.8558458
1.4276886 2.0603085
1.3272578 1.8906013
1.5569048 2.0001564
1.5756388 2.1912053
1.9869299 2.3792198
1.8189707 2.7369244
1.3973557 2.4438667
-4.249913 -0.2246463
-1.9120424 -0.00516572
-0.0061387075 -0.14353351
0.80639493 0.010834271
1.4316615 0.035946842
-3.410931 -0.09643716
-1.7743304 0.07274415
-0.18588163 -0.10339336
0.5619047 -0.24220358
1.2757853 -0.10307691
-2.25766 -0.079659574
-1.1736825 -0.016755452
-0.47299188 -0.10323182
0.38950402 -0.008980153
1.098909 -0.13084923
-2.850165 -0.1536615
-1.7250451 0.029471084
-0.7260333 -0.18607274
-0.055943523 -0.10420174
0.9642611 0.008845984
-4.005538 -0.15205318
-2.295592 0.0593492
-1.041572 -0.12890756
-0.24684854 -0.032627933
0.6455168 -0.0911684
1.1459881 -0.008783043
1.4573389 -0.16778614
1.4954526 -0.29719573
1.2473075 -0.41922522
1.0846232 -0.18285862
1.2540116 0.036619943
1.9666128 -0.05505202
1.9739157 -0.21583575
1.2105061 -0.6781076
0.7538055 -0.47871277
1.2492738 0.12350094
2.14189 -0.12206157
1.7544507 -0.41703764
0.96942043 -0.58151656
0.31504372 -0.5163836
1.7381212 0.30518386
2.490894 -0.07088575
1.6445026 -0.24859065
0.26533163 -0.6786162
-0.3193328 -0.5492481
2.0120225 0.11020481
2.0718558 0.15241854
0.8759794 -0.19148083
0.04767526 -0.22238904
-0.41645908 -0.5883373
1.2511733 -1.9134296
0.5724159 -1.3091345
0.37694663 -1.1205245
1.2807285 -0.9423058
1.8684267 -0.9971371
1.8152616 -2.0924008
1.280423 -1.5225571
1.101077 -1.4351251
1.197118 -1.181539
1.5331124 -1.1995114
1.7447906 -1.6696789
1.6138377 -1.6131642
1.4156343 -1.4193718
1.0536009 -1.2528512
0.8561865 -1.3836057
1.9363236 -1.4543215
2.2086453 -1.1393946
1.6627563 -1.1318659
1.021228 -1.3406729
0.60839254 -1.4267716
2.1018016 -0.56939834
2.1533952 -0.8572612
1.9573407 -0.86178756
1.29546 -0.86870027
0.57359654 -1.1124083
-0.29376534 -0.030429596
0.9012422 -0.015162346
1.1789744 -0.23064966
0.710556 -0.63212466
0.8737443 -0.8233778
0.095544085 -0.6971651
1.045074 -0.89806795
0.9252817 -1.1291697
0.471885 -1.1876353
0.6031909 -1.0566497
-0.2500516 -1.141609
0.14211257 -1.0472245
-0.27518043 -0.9446792
-1.0673013 -1.2598085
-0.845284 -1.1849722
-0.7930444 -0.7953462
-1.1906688 -0.4807137
-2.2155006 -0.74657875
-2.8370302 -1.1390802
-2.2175434 -1.1091293
-0.9103819 -0.30506095
-2.3526044 -0.086611256
-3.3939815 -0.50039047
-3.9634273 -0.92477053
-2.9982874 -0.7466115
-3.0668538 0.7484353
-1.9301875 1.099887
0.46062958 1.0560677
1.1481701 1.0539607
1.6189759 0.80640066
-2.693133 1.355793
-1.3168526 1.6745459
0.39946663 1.5189409
0.777253 1.397477
1.2958935 1.011761
-1.7610679 1.5243987
-0.87182975 1.8741314
0.015992796 1.7208973
0.35228586 1.2180593
0.825145 0.8020791
-2.3087604 1.3893685
-1.4618046 1.6558268
-0.49614725 1.5869464
-0.12511182 1.0812482
0.5606166 0.817395
-3.9921951 1.0296667
-2.422155 1.2454413
-0.9274944 1.027977
-0.43651518 0.6484715
0.110710315 0.5705967

View File

@@ -1,11 +1,11 @@
10 10
2.4876857 2.339627
-0.2729608 1.8759418
-2.472103 -0.70012397
1.4380744 -0.13009475
0.13707557 0.17396869
-0.38399124 2.766548
-0.10049698 -1.4850869
-0.44721037 -2.6339962
-0.24111606 -0.12728444
-0.05031827 0.14405365

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,17 @@
16 16
6.674671 -1.0079371
-0.4621555 -0.21348575
-0.35395312 -0.047885668
-6.140842 1.3191578
-0.6383096 -0.18780966
-0.0026992396 7.9113836
-0.105528705 -0.07285687
-0.12171911 -4.019421
-0.039757866 -0.9552737
-4.064281 -0.41599488
-0.36199543 -0.13497822
-0.06976157 -1.286887
-0.042993866 1.954279
0.0015301058 -0.377049
-0.06826296 -0.2319671
-0.0050806464 -5.739259

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,7 @@
4 6
6.171619 7.672486
-1.5262855 -2.1727772
-4.09489 -1.6976244
-2.3815227 -0.39480045
-4.701963
-4.060234

View File

@@ -1,66 +1,98 @@
16 16
4 6
0.70240104 5.294904e-34
-0.058500186 4.1071474e-34
-0.23156737 3.5979983e-34
-0.33127818 -4.8111744e-34
-3.6112761e-34 3.0298388e-34
-3.3890292e-34 4.727617e-34
9.363116e-34 4.2841314e-34
4.0197816e-34 -7.448757e-34
-0.2575022 -1.3280983e-34
0.69736814 -3.4998216e-34
-0.2684227 1.1480016e-34
-0.08991088 2.4329347e-34
-0.3760809 -3.8421887e-34
-0.065089576 6.131607e-34
0.45981047 3.2127673e-35
0.008204719 4.036833e-34
-4.8556375e-34 -4.4449285e-34
4.816393e-34 -1.3033124e-34
3.872484e-34 -0.0063951695
5.096778e-34 0.006757953
1.7445673e-19 0.026418086
1.2270845e-33 -0.014205176
-2.260416e-25 0.04418388
1.0369542e-20 0.062677905
4.00948e-34 -5.2201886e-34
-5.999333e-34 1.1684014e-33
3.7143163e-34 -4.5119606e-34
-4.228372e-34 5.0112353e-34
-1.0954501e-34 7.1335205e-34
-2.7085206e-34 3.8090283e-34
8.016929e-34 0.61706346
9.2079354e-35 0.12671919
-3.945864e-34 -0.05489751
1.98814e-34 -0.03665739
2.3972646e-34 -0.2387121
3.942207e-34 -0.19392832
-0.14058167 4.400894e-34
-0.07198931 3.3940071e-34
-0.38025984 -3.2267908e-34
0.5981627 4.2374877e-34
4.3956684e-34 3.7673267e-34
3.1032594e-34 -4.2796806e-34
3.4351758e-34 0.09789613
5.5414507e-34 -0.37246978
-1.248324e-34 -0.09926232
8.8546844e-35 0.054989994
6.8084945e-34 0.5217698
-1.1866068e-34 -0.020826261
-3.865728e-34 4.7286482e-15
1.8786859e-34 -1.3830426e-15
3.3450276e-34 5.8647296e-35
-2.8077459e-34 1.1566057e-33
0.0013890187 1.2851214e-33
0.026067872 -4.4416296e-33
0.0082543865 2.4679793e-34
-0.02225164 -8.546679e-34
2.0089658e-34 -6.019269e-34
-6.1273506e-34 -4.7928078e-34
-6.228039e-34 -2.6198876e-35
-5.0242814e-34 -1.5769217e-36
-4.3343494e-34 -1.0960844e-33
3.0939117e-34 -1.1464184e-33
1.2827092e-34 -4.9895474e-34
-4.305108e-34 -1.2327797e-33
6.3556863e-34
3.949529e-36
-0.44523916
-0.048138373
0.49848852
0.67901206
-0.035957992
-0.36799058
0.07924421
-0.23662093
0.409469
-0.60837746
-0.14665303
0.685228
-2.1080804e-34
8.089918e-34
-3.8773814e-34
-1.2162282e-34
3.8192135e-34
5.806797e-34
1.9141679e-34
5.46885e-34
-9.801028e-34
8.670833e-34
2.838885e-34
1.2663823e-34
-0.21810062
0.7242532
-0.07114903
-0.066113256
-0.054350372
-0.18786566