|
|
@@ -24,7 +24,7 @@ |
|
|
|
|
|
|
|
#include <pipi.h> |
|
|
|
|
|
|
|
#define STEP 15 |
|
|
|
#define STEP 12 |
|
|
|
|
|
|
|
#define TWIDTH 90 |
|
|
|
#define THEIGHT 60 |
|
|
@@ -33,6 +33,7 @@ |
|
|
|
#define NTHUMBS (TCOLS*TROWS) |
|
|
|
|
|
|
|
static int similar(uint8_t *img1, uint8_t *img2); |
|
|
|
static void decorate(uint8_t *img); |
|
|
|
|
|
|
|
int main(int argc, char *argv[]) |
|
|
|
{ |
|
|
@@ -135,6 +136,8 @@ int main(int argc, char *argv[]) |
|
|
|
sws_scale(sws, frame->data, frame->linesize, 0, ctx->height, |
|
|
|
&start, &pitch); |
|
|
|
|
|
|
|
decorate(start); |
|
|
|
|
|
|
|
if(idx > 0) |
|
|
|
{ |
|
|
|
uint8_t *prev; |
|
|
@@ -167,8 +170,8 @@ static int similar(uint8_t *img1, uint8_t *img2) |
|
|
|
{ |
|
|
|
int x, y, t, a, b, changed = 0; |
|
|
|
|
|
|
|
for(y = 1; y < THEIGHT - 1; y++) |
|
|
|
for(x = 1; x < TWIDTH - 1; x++) |
|
|
|
for(y = 2; y < THEIGHT - 2; y++) |
|
|
|
for(x = 2; x < TWIDTH - 2; x++) |
|
|
|
{ |
|
|
|
int offset = y * TWIDTH * TCOLS + x; |
|
|
|
int ok = 0; |
|
|
@@ -210,3 +213,47 @@ static int similar(uint8_t *img1, uint8_t *img2) |
|
|
|
return changed < (TWIDTH * THEIGHT * 10 / 100); |
|
|
|
} |
|
|
|
|
|
|
|
static void decorate(uint8_t *img) |
|
|
|
{ |
|
|
|
static int const hi = 200; |
|
|
|
static int const lo = 50; |
|
|
|
static int const mid = (hi + lo) / 2; |
|
|
|
int x, y; |
|
|
|
|
|
|
|
for(y = 0; y < THEIGHT; y++) |
|
|
|
{ |
|
|
|
img[(y * TWIDTH * TCOLS) * 4] = hi; |
|
|
|
img[(y * TWIDTH * TCOLS) * 4 + 1] = hi; |
|
|
|
img[(y * TWIDTH * TCOLS) * 4 + 2] = hi; |
|
|
|
img[(y * TWIDTH * TCOLS + TWIDTH - 1) * 4] = lo; |
|
|
|
img[(y * TWIDTH * TCOLS + TWIDTH - 1) * 4 + 1] = lo; |
|
|
|
img[(y * TWIDTH * TCOLS + TWIDTH - 1) * 4 + 2] = lo; |
|
|
|
} |
|
|
|
|
|
|
|
for(x = 0; x < TWIDTH; x++) |
|
|
|
{ |
|
|
|
img[x * 4] = hi; |
|
|
|
img[x * 4 + 1] = hi; |
|
|
|
img[x * 4 + 2] = hi; |
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS + x) * 4] = lo; |
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS + x) * 4 + 1] = lo; |
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS + x) * 4 + 2] = lo; |
|
|
|
} |
|
|
|
|
|
|
|
img[0] = (mid + hi) / 2; |
|
|
|
img[1] = (mid + hi) / 2; |
|
|
|
img[2] = (mid + hi) / 2; |
|
|
|
|
|
|
|
img[(TWIDTH - 1) * 4 + 0] = mid; |
|
|
|
img[(TWIDTH - 1) * 4 + 1] = mid; |
|
|
|
img[(TWIDTH - 1) * 4 + 2] = mid; |
|
|
|
|
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS) * 4 + 0] = mid; |
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS) * 4 + 1] = mid; |
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS) * 4 + 2] = mid; |
|
|
|
|
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS + TWIDTH - 1) * 4 + 0] = (mid + lo) / 2; |
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS + TWIDTH - 1) * 4 + 1] = (mid + lo) / 2; |
|
|
|
img[((THEIGHT - 1) * TWIDTH * TCOLS + TWIDTH - 1) * 4 + 2] = (mid + lo) / 2; |
|
|
|
} |
|
|
|
|