mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Merge pull request #928 from kwagyeman/kwabena/fix_find_rect
Fix find_rects
This commit is contained in:
commit
d7617c0fd1
@ -12110,47 +12110,18 @@ void imlib_find_rects(list_t *out, image_t *ptr, rectangle_t *roi, uint32_t thre
|
|||||||
umm_init_x(((fb_avail() - fb_alloc_need) / resolution) * resolution);
|
umm_init_x(((fb_avail() - fb_alloc_need) / resolution) * resolution);
|
||||||
apriltag_detector_t *td = apriltag_detector_create();
|
apriltag_detector_t *td = apriltag_detector_create();
|
||||||
|
|
||||||
uint8_t *grayscale_image = fb_alloc(roi->w * roi->h, FB_ALLOC_NO_HINT);
|
image_t img;
|
||||||
|
img.w = roi->w;
|
||||||
|
img.h = roi->h;
|
||||||
|
img.bpp = IMAGE_BPP_GRAYSCALE;
|
||||||
|
img.data = fb_alloc(image_size(&img), FB_ALLOC_NO_HINT);
|
||||||
|
imlib_draw_image(&img, ptr, 0, 0, 1.f, 1.f, roi, -1, 256, NULL, NULL, 0);
|
||||||
|
|
||||||
image_u8_t im;
|
image_u8_t im;
|
||||||
im.width = roi->w;
|
im.width = roi->w;
|
||||||
im.height = roi->h;
|
im.height = roi->h;
|
||||||
im.stride = roi->w;
|
im.stride = roi->w;
|
||||||
im.buf = grayscale_image;
|
im.buf = img.data;
|
||||||
|
|
||||||
switch(ptr->bpp) {
|
|
||||||
case IMAGE_BPP_BINARY: {
|
|
||||||
for (int y = roi->y, yy = roi->y + roi->h; y < yy; y++) {
|
|
||||||
uint32_t *row_ptr = IMAGE_COMPUTE_BINARY_PIXEL_ROW_PTR(ptr, y);
|
|
||||||
for (int x = roi->x, xx = roi->x + roi->w; x < xx; x++) {
|
|
||||||
*(grayscale_image++) = COLOR_BINARY_TO_GRAYSCALE(IMAGE_GET_BINARY_PIXEL_FAST(row_ptr, x));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case IMAGE_BPP_GRAYSCALE: {
|
|
||||||
for (int y = roi->y, yy = roi->y + roi->h; y < yy; y++) {
|
|
||||||
uint8_t *row_ptr = IMAGE_COMPUTE_GRAYSCALE_PIXEL_ROW_PTR(ptr, y);
|
|
||||||
for (int x = roi->x, xx = roi->x + roi->w; x < xx; x++) {
|
|
||||||
*(grayscale_image++) = IMAGE_GET_GRAYSCALE_PIXEL_FAST(row_ptr, x);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case IMAGE_BPP_RGB565: {
|
|
||||||
for (int y = roi->y, yy = roi->y + roi->h; y < yy; y++) {
|
|
||||||
uint16_t *row_ptr = IMAGE_COMPUTE_RGB565_PIXEL_ROW_PTR(ptr, y);
|
|
||||||
for (int x = roi->x, xx = roi->x + roi->w; x < xx; x++) {
|
|
||||||
*(grayscale_image++) = COLOR_RGB565_TO_GRAYSCALE(IMAGE_GET_RGB565_PIXEL_FAST(row_ptr, x));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
memset(grayscale_image, 0, roi->w * roi->h);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Detect quads according to requested image decimation
|
// Detect quads according to requested image decimation
|
||||||
@ -12273,7 +12244,7 @@ void imlib_find_rects(list_t *out, image_t *ptr, rectangle_t *roi, uint32_t thre
|
|||||||
uint32_t magnitude = 0;
|
uint32_t magnitude = 0;
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
if(!lb_clip_line(&lines[i], 0, 0, ptr->w, ptr->h)) {
|
if(!lb_clip_line(&lines[i], 0, 0, roi->w, roi->h)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user