summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2016-02-03 01:40:08 +0100
committerFlorian Jung <flo@windfisch.org>2016-02-03 01:40:08 +0100
commite4350d0413dc26786072face6fd2e0a345eb6309 (patch)
tree996b42c2d2ea58a086f422f3e10e5f62436da360
parent307b290590a170d0b8c88618598486e705492222 (diff)
stuff? dunnoHEADmaster
-rw-r--r--detect_road_borders.cpp5
-rw-r--r--joystick.cpp2
-rw-r--r--mariokart.cpp32
3 files changed, 35 insertions, 4 deletions
diff --git a/detect_road_borders.cpp b/detect_road_borders.cpp
index d3ab3f7..7e4868d 100644
--- a/detect_road_borders.cpp
+++ b/detect_road_borders.cpp
@@ -23,6 +23,7 @@
#include <iostream>
#include <math.h>
#include <opencv2/opencv.hpp>
+#include <assert.h>
using namespace std;
using namespace cv;
@@ -580,7 +581,7 @@ int find_steering_point(Mat orig_img, Point origin_point, int** contour_map, Mat
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
- findContours(img, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_NONE, Point(0, 0));
+ findContours(img, contours, hierarchy, RETR_TREE, CHAIN_APPROX_NONE, Point(0, 0));
int low_y, low_idx, high_y, first_nonbottom_idx;
vector<Point>& contour = prepare_and_get_contour(img.cols, img.rows, contours, hierarchy,
@@ -660,7 +661,7 @@ int main(int argc, char* argv[])
continue;
}
- cvtColor(frame, tmp, CV_RGB2GRAY);
+ cvtColor(frame, tmp, COLOR_RGB2GRAY);
threshold(tmp, thres, 132, 255, THRESH_BINARY);
dilate(thres,tmp,Mat());
erode(tmp,thres,Mat());
diff --git a/joystick.cpp b/joystick.cpp
index 6729023..ad06bda 100644
--- a/joystick.cpp
+++ b/joystick.cpp
@@ -41,7 +41,7 @@
using namespace std;
-#define THROTTLE_CNT_MAX 10
+#define THROTTLE_CNT_MAX 6
#ifdef JOYSTICK_PATCHEDINPUTPLUGIN
static char* pack(const BUTTONS* buttons, char* buf)
diff --git a/mariokart.cpp b/mariokart.cpp
index 414a9cd..284f570 100644
--- a/mariokart.cpp
+++ b/mariokart.cpp
@@ -63,6 +63,8 @@ using namespace cv;
#define HIST_SMOOTH 7
//#define NO_BRIGHTNESS // will man nicht, nur zu demonstrationszwecken
+#define ADJUST_BRIGHTNESS
+#define ADJUST_BRIGHTNESS_EXP 3
#define ERODE_RADIUS_2D 4
@@ -188,6 +190,13 @@ void* thread1_func(void*)
}
}
+float mypow(float base, float exp)
+{
+ if (base >= 0)
+ return pow(base,exp);
+ else
+ return -pow(-base,exp);
+}
int main(int argc, char* argv[])
{
@@ -262,6 +271,11 @@ joystick.reset();
XorgGrabber capture("Mupen64Plus OpenGL Video");
#endif
+ uchar mypow_lut[256];
+ for (int i=0; i<256; i++)
+ mypow_lut[i] = mypow(((((float)i)-128.)/128.), ADJUST_BRIGHTNESS_EXP)*128.+128.;
+
+
Mat transform;
bool first=true;
@@ -277,7 +291,7 @@ joystick.reset();
namedWindow("edit");
setMouseCallback("edit", mouse_callback, NULL);
- joystick.throttle(0.5);
+ joystick.throttle(2./6);
VideoWriter img_writer, thres_writer, thres2_writer;
@@ -354,6 +368,22 @@ joystick.reset();
}
#endif
+ #ifdef ADJUST_BRIGHTNESS
+ Mat hsv;
+ cvtColor(img, hsv, CV_BGR2HSV);
+ for (int y=0; y<hsv.rows;y++)
+ {
+ uchar* data=hsv.ptr<uchar>(y) + 2;
+ for (int x = 0; x< hsv.cols; x++)
+ {
+ *data= mypow_lut[*data];
+ data+=3;
+ }
+ }
+
+ cvtColor(hsv, img, CV_HSV2BGR);
+ #endif
+
road_thresholder->process_image(img);
Mat img_thres = road_thresholder->get_road();