Commit Graph

152 Commits

Author SHA1 Message Date
iabdalkader
e650adb53a Update keypoints.py script. 2017-01-15 18:43:14 +02:00
Ibrahim Abd Elkader
f1f2fb03d6 Merge pull request #175 from kwagyeman/arduino_interface
Arduino Interfacing Code
2017-01-15 03:56:59 +02:00
Kwabena W. Agyeman
870985178a Arduino Interfacing Code
Simple SPI and I2C examples.
2017-01-14 20:32:32 -05:00
Ibrahim Abd Elkader
25005eb80e Merge pull request #174 from kwagyeman/color_tracking
Update color tracking scripts.
2017-01-14 18:29:26 +02:00
Kwabena W. Agyeman
19050ee7a5 Update color tracking scripts.
Lots of scripts now. Cleaned up old code.
2017-01-14 11:17:07 -05:00
iabdalkader
be300ff6ed Update scripts that use descriptor functions. 2017-01-14 01:23:23 +02:00
Kwabena W. Agyeman
0e89b655bf Made set_windowing simpilier.
Tested with updated qr code example script.
2017-01-12 17:41:40 -05:00
iabdalkader
58ef87cd85 ORB: Change default threshold to 85 and min match to 5. 2017-01-10 04:11:41 +02:00
iabdalkader
ba2e15a354 Update face tracking example 2017-01-09 01:40:32 +02:00
iabdalkader
f884fe2072 Add ORB keypoints example scripts. 2017-01-09 01:29:37 +02:00
iabdalkader
96e4f770c0 Use scale_factor instead of scale in find_features
* Updated all scripts.
2017-01-08 18:23:25 +02:00
iabdalkader
78cebd16e1 Update scripts using auto functions control. 2016-12-29 03:54:22 +02:00
Kwabena W. Agyeman
fbc58cf137 Updated QR Code Library with upstream changes and fixed up scripts for
demo.
2016-12-28 10:57:31 -05:00
Kwabena W. Agyeman
af15ec6eb3 New Blob Code
The new API is backwards compatible with the previous one except for
advanced features. The new blob code uses a flood fill algorithm that is
3x faster in filling out blobs that the previous code. On the M7 the
performance cap of 30 FPS is usually reached.

Additionally, blobs are objects with named attributes now so you don't
have to index access them anymore. However, index access is still
supported.
2016-12-27 19:10:24 -05:00
Kwabena W. Agyeman
6a8ce01e79 Add QRCode detection.
Use the qrcodes script and point your OpenMV Cam at google search
results for QR Codes.
2016-12-27 15:30:35 -05:00
iabdalkader
a800673f87 Update selftest script. 2016-12-22 01:24:27 +02:00
iabdalkader
cee80158c3 Update copy2fb example 2016-12-14 18:50:04 +02:00
iabdalkader
993ad7c2b4 Update helloworld comments. 2016-12-02 01:13:58 +02:00
iabdalkader
e8dcb2863d Update MJPEG streamer example. 2016-11-19 23:31:24 +02:00
iabdalkader
ef6e6303c7 Add HoG. 2016-10-10 17:22:04 +02:00
iabdalkader
41d5171b95 Update find lines script. 2016-09-20 00:20:38 +02:00
iabdalkader
2d88e660a7 Update face detector's default thresholds. 2016-09-14 23:15:59 +02:00
iabdalkader
e81f228796 Add simple edge function. 2016-09-14 20:54:53 +02:00
iabdalkader
e104be63df Implement Canny edge detector. 2016-09-13 02:37:43 +02:00
iabdalkader
3a05589a6b Add Hough Transform example script. 2016-09-12 22:17:20 +02:00
iabdalkader
63d57d2f9f Add facerec example 2016-09-08 03:12:37 +02:00
iabdalkader
ad585caccb Update mjpeg streaming example. 2016-08-30 00:58:02 +02:00
iabdalkader
027d548300 Add FPS test script. 2016-08-27 20:45:14 +02:00
iabdalkader
124cef21de Update colorbars test. 2016-08-23 22:35:50 +02:00
iabdalkader
56438bc079 Add cpufreq module.
* Add CPU frequency scaling module and example script.
2016-08-17 19:42:05 +02:00
iabdalkader
f0a4d98fef Update optical flow script to use 64x32 resolution. 2016-06-21 00:46:47 +02:00
iabdalkader
02088a14e1 Rename set_binning to set_windowing. 2016-06-20 22:24:00 +02:00
Kwabena W. Agyeman
7af818c4d8 Finished up optical flow code.
* Added pooling functions to make getting small images easy. set_binning
works too... but, it zooms in way to much. pooling functions aout you to
shrink the image while not zooming in.

* To make the pooling functions easy to use I created a version that
pools the image out of place and one that pools the image in place. The
inplace pooling function can work on the frame buffer (see edits to
sensor.c)

* I added the code to do hann windowing to the FFT lib. However, I
commented it out after it improved performance by basically zero.
Specialized windowing stuff will only come in handy for folks trying to
tune their algorithm... not in general for everything.

* I added subpixel resolution for the phase correlation code. You can
now track the image movement really precisely. Additionally, I fixed up
the displacement outputs to give expected results. I also added a QoR
output for the displacement code so that you can know when the results
are bad.

* Finally, an example script has been added to show off the features.
2016-06-18 23:05:44 -04:00
iabdalkader
6443eff70f Update template matching script. 2016-06-15 23:43:21 +02:00
iabdalkader
e40c50f739 Add diamond search for fast template matching. 2016-06-15 22:59:17 +02:00
iabdalkader
d9b03641f7 Add copy to framebuffer function and example script. 2016-06-15 21:59:36 +02:00
iabdalkader
8c8e1d08c8 Update template matching script to use binning, ROI and step. 2016-06-14 00:14:44 +02:00
iabdalkader
f6ca73b5c9 Adjust iris window. 2016-06-04 01:18:12 +02:00
iabdalkader
3d31ae535d Remove old iris example. 2016-06-04 01:14:06 +02:00
iabdalkader
4b074a7044 Update iris detection script. 2016-06-04 01:11:44 +02:00
iabdalkader
46fc010514 Update iris tracking script. 2016-06-04 00:58:31 +02:00
iabdalkader
ad812b410a Update iris detection example to use binning. 2016-06-03 23:10:47 +02:00
iabdalkader
34ee346846 Add timer callback example. 2016-05-18 18:53:18 +02:00
iabdalkader
b0f4ebf0cd Update PWM example. 2016-05-18 18:45:25 +02:00
iabdalkader
203b60cd36 Remove old skin_filter.py 2016-05-16 14:29:41 +02:00
iabdalkader
2e2c563227 Re-implement line filters with Python callbacks. 2016-05-16 14:22:30 +02:00
iabdalkader
a165c67132 Set sharpness on OV7725 for edge detection. 2016-05-01 16:01:35 +02:00
iabdalkader
e53d8f874f Add second iris detection example 2016-05-01 15:07:27 +02:00
Kwabena W. Agyeman
7a01a9bede Final Imlib Cleanup
Finished going through imlib.c.
-> Histeq uses fb_alloc now and has hook for RGB histeq when reserve YUV
LUT is added (coming soon in next PR).

Cleanuped py_helper.c/h
-> No functional changes. Just added some header info.

Finished going through py_image.c
* 1 - Finished general code cleanup and updating everything to using new
library functions. In particular, I updated the remaining find_*
functions with the new roi clipping code when they accept rois.
* 2 - Made blob stuff return a list when nothing is found so you don't
have to do an if on the returned value anymore.
* 3 - img subscr is more powerful now allowing image reading and
writing. I updated this because I had to use it to find a previous bug
with socket.send() for the WINC driver.
* 4 - Renamed find_eyes to find_eye. Because it just finds one eye.
* 5 - Other than that just general code cleanup to make functions look
consistent.

And yes, changes have been test. Face tracking, eye tracking, keypoints,
etc. all work still.

Future things todo before release:
1 - Change all LAB stuff to YUV.
2 - Add in reverse YUV->RGB LUT and update functions like Mode() to use
this so they don't generate messed up outputs, also histeq() too.
3 - Add any remaining sensor control functions like agc control.
2016-04-25 21:55:49 -04:00
Kwabena W. Agyeman
367e5fdd3d Improved JPEG capabilities.
* Added the ability to control the quality on JPEG functions... However,
due to our JPEG implementation this doesn't seem to help. 90% JPEG
quality images and regular images should be about equal. But, you can
see heavy degredation with 90% still. E.g. text is unreabable. Not
exactly sure why this is happening but it can be fixed later.

* Changed the compress() function to compressed(). Also, it now
compresses using FB_Alloc to prevent realloc issues when compressing.

* Added new compress() function. This function compresses an image in
place and if that image is the frame bufffer then it will update the
frame buffer bpp value to reflect the image was compressed. Users can use
this function to basically finalize the frame buffer and then pass the FB
to functions that need to send image bytes. The benefit of using this
function is that it should allow higher quality JPEGs and let everything
run at a faster speed while connected to the IDE.

I made this function to speed up WiFi. However, I encountered a bug with
the winc.send() method. It appears to zero the bytes it sends. I didn't
debug further except to verify that the image data became zero after
calling send.
2016-04-23 16:37:21 -04:00