Commit Graph

341 Commits

Author SHA1 Message Date
Kwabena W. Agyeman
66248c444b Update Gif to use fb_alloc_all.
And tested it along with mjpeg to make sure all this stuff is good. I
also see the issue with QQVGA now. That just appeared.
2016-03-05 22:29:21 -05:00
Kwabena W. Agyeman
5316b26d83 Added a new mjpeg module for Mjpeg support.
The built-in mjpeg module allows you to record videos seamlessly. It
will automatically compress the frame buffer using the extra space in the
main ram. So... you don't have to pass it jpeg images. Gets 7 FPS at
320x240 while connected to the computer too (it has to compress the
frame twice in this situation).

Anyway, the module work like Gif.
2016-03-05 20:03:48 -05:00
Kwabena W. Agyeman
9325029675 Add support for color gif.
Color gifs look very good for how bad you'd expect them to be with just
7 bits of color (rgb232) - quite amazing. Also, I  hardened the gif
module to make it "user ready".
2016-03-04 23:30:01 -05:00
iabdalkader
596cdf527c Lower the text buffer polling rate. 2016-03-02 04:02:27 +02:00
Kwabena W. Agyeman
98f4dde21f Add new morph function.
The morph function lets you convolve the image with a kernel. It's
decently fast right now. But, in the future we'll have to optimize it by
a lot (unrolling loops, using SIMD instructions, etc.).

Anyway, along with morph I added an edge detection test script showing
how you can use a high pass filter on an image to get all the edges in
it. This is not as good as canny edge dection... but, it's about the
same and fast enough.

We'll need a Hough Transform system in the future to make edge dection
useful. Not sure how that will be implemented... so, that's going to be
far away for now.
2016-02-29 18:04:45 -05:00
Kwabena W. Agyeman
fb8b357c24 Dilate and errode working.
The old code did not actually implement the errode anhd dilate kernels
correctly. However, it migh have been a little faster because it avoided
the boundary problem.

In the future we can optimize all the kernel code to have different loops
for doing the edges of image versus the center. But, for now, this is
good enough. QVGA color tracking with kernels will be slow, but, the
speed can be improved with QQVGA resolution. Using a 3x3 kernel is
plenty fast. Larger ones are slower.

I also added the ability for you to set the threshold for erode and
dialte. This lets you make the kenrel a little bit smarter so that it
won't errode or dilate a pixel unless the threshold is met. Meaning,
you'll be able to use erode to erode an image down to 1 pixel wide
lines.
2016-02-28 16:27:49 -05:00
iabdalkader
052d64e79c Set frame size to QQVGA in gif script. 2016-02-28 21:37:23 +02:00
iabdalkader
2e7ded5dd4 Add GIF module 2016-02-28 21:34:47 +02:00
iabdalkader
b40c07c75d Add BLE example. 2016-02-28 04:12:56 +02:00
iabdalkader
955856488c Add profile face XML cascade 2016-02-28 04:09:39 +02:00
iabdalkader
0aed3f4961 Add image filters example. 2016-02-28 04:07:28 +02:00
iabdalkader
c050509b9d Update descriptor scripts.
* Use the new match_descriptor.
* Add commented line that loads descriptor from file
2016-02-28 03:56:02 +02:00
iabdalkader
08f7cb8832 Add LBP descriptor example script 2016-02-28 03:51:57 +02:00
Kwabena W. Agyeman
4ed49082a1 Background Subtraction is working!!!
Woot, all the effort to make it so you can manipulate the image buffer
with an image off disk works!

Try out the motion_detection script.
2016-02-27 11:58:37 -05:00
Kwabena W. Agyeman
1121a6f7df Fixed save image.
It now figures out the file type from the file extension. If no file
extension is given it just saves the file as BMP if its not a JPEG image
or JPEG if it's a JPEG image. If you specify an extension and the file is
not of that type then it will give you an error.

The new test_save.py should run until you reach the JPEG image part
where it quits due to lack of JPEG support natively on OV7725 boards.
Maybe JPEG mode should be supoorted by just compressing pictures?
2016-02-26 22:00:04 -05:00
iabdalkader
8b87656241 Update kpts script.
* Draw FPS on framebuffer
2016-02-26 23:14:32 +02:00
iabdalkader
f66757f264 Fix ROI size sent from IDE.
* Rectangle was changed from int to short.
2016-02-26 03:03:29 +02:00
iabdalkader
84e2e1fa0d Update keypoints scripts. 2016-02-26 03:03:08 +02:00
iabdalkader
9f7b370b0e Update face_tracking script.
* Search for new keypoints within a detected face.
* Draw based on matching percentage of keypoints.
2016-02-22 03:32:32 +02:00
iabdalkader
8d4131426d Update face, eye and iris detection scripts. 2016-02-21 23:04:31 +02:00
iabdalkader
baee885cd4 Update eye detection Python script. 2016-02-21 20:39:48 +02:00
Kwabena W. Agyeman
140ceb3b77 Fixed bug in centroid and added tests.
Stuff works. Yay! Moving on to other things now.
2016-02-20 16:04:59 -05:00
Kwabena W. Agyeman
88d9c02a1b Draw keypoints now accepts lists.
Made draw keypoints accept lists of (x, y, angle) tuples. I did this so
it could be used to show object rotation easily.
2016-02-20 16:04:59 -05:00
Kwabena W. Agyeman
b01adfee26 Fixed up drawing code and scripts along with drawing code.
Set pixel works too now.
2016-02-19 22:55:50 -05:00
Kwabena W. Agyeman
a035aae493 Fixed set pixel. 2016-02-19 21:05:02 -05:00
iabdalkader
c4c25c70d9 Fix Enable/Disable JPEG 2016-02-19 18:10:04 +02:00
iabdalkader
19450b8810 Update Python examples 2016-02-19 18:03:20 +02:00
Kwabena W. Agyeman
b27dfde61f Remvoed set pixel code for now. 2016-02-18 23:02:15 -05:00
Kwabena W. Agyeman
bcd5151412 New drawing functions.
All the drawing functions have been updated to handle automatic clipping
when drawing offscren and work with both grayscale and RGB565.
Additionally, all functions now accept color arguments.

I've also updated the example scripts with the new functions and tested
them out to make sure they work.

Additionally, I wrote a test suite for the drawing functions to make
sure they work.
2016-02-18 22:40:12 -05:00
iabdalkader
7f9e95fdd5 Add enable/disable JPEG to preferences dialog. 2016-02-18 05:10:10 +02:00
iabdalkader
6b52c82e39 Add find face+eyes example script 2016-02-17 22:35:29 +02:00
iabdalkader
6b5cdce4aa Update face detection example 2016-02-17 22:09:02 +02:00
iabdalkader
dd7c8809a3 Update MLX Python script. 2016-02-10 17:35:40 +02:00
iabdalkader
dbd69a3a25 Remove framebuffer locking.
* Not needed anymore.
2016-02-09 01:11:25 +02:00
iabdalkader
05144b63b1 Make the IDE handle older FW versions. 2016-02-06 20:10:16 +02:00
iabdalkader
b61ac5f067 Display the correct IDE version. 2016-02-06 19:32:02 +02:00
iabdalkader
eb97a51183 Fix the ABI version to avoid breaking older IDE's 2016-02-06 19:19:55 +02:00
iabdalkader
51390c9326 Update version mismatch error 2016-02-06 18:07:09 +02:00
iabdalkader
cf641af6b0 Add command to return script running flag.
* Return script running flag to disable/enable execute and stop buttons.
* Up ABI version
2016-02-06 17:59:52 +02:00
iabdalkader
cc312c3a53 Draw the last frame when fb is not ready. 2016-02-06 16:11:30 +02:00
iabdalkader
1d932b0b5a Update MLX python scripts 2016-01-25 23:53:46 +02:00
iabdalkader
3eddaa5c10 Update MLX example 2016-01-25 22:32:46 +02:00
iabdalkader
7bccf220c4 Add MLX-LCD example. 2016-01-18 19:34:06 +02:00
iabdalkader
f28d3f6235 Update MLX example 2016-01-18 19:29:50 +02:00
iabdalkader
4ba640a842 Uncomment sensor.reset in blob_detection example 2015-10-04 00:29:20 +02:00
iabdalkader
fc2a5bb1c7 Use python2 to run openmv.py, pydfu.py and openmv-ide.py 2015-10-03 23:53:03 +02:00
iabdalkader
8fd4ea6d16 Add pinout dialog to Help menu. 2015-10-01 23:51:00 +02:00
iabdalkader
f45128955f Move serial port opening to openmv.py 2015-09-27 23:41:25 +02:00
iabdalkader
99884ea399 Fix IDE's Version String. 2015-09-26 00:00:13 +02:00
iabdalkader
29cbe8dc12 Add About Dialog. 2015-09-25 23:53:08 +02:00
iabdalkader
8f747b518d Fix IDE tag name 2015-09-24 01:00:45 +02:00
iabdalkader
9398ae0248 Add check for update
* Add check for latest release in IDE.
2015-09-23 05:04:55 +02:00
iabdalkader
f887659869 Fix default baudrate in openmv example
* Fix baudrate in openmv.py example
2015-09-14 03:25:31 +02:00
iabdalkader
4c065fac6e Fix menuitems underscores
* Issue #36
2015-09-14 03:00:30 +02:00
iabdalkader
cf9c643ca0 Remove unused import 2015-09-14 02:47:27 +02:00
iabdalkader
e81e6d189e Fix style/lang search path 2015-09-11 07:03:10 +02:00
iabdalkader
b03a77a80e Append IDE directory to style search paths 2015-09-11 07:00:45 +02:00
iabdalkader
c1fb84c164 Cleanup PyInstaller spec file 2015-09-10 02:17:26 +02:00
iabdalkader
159ab5dc7e Add BUNDLE attributes 2015-09-09 01:40:08 +02:00
iabdalkader
d47fafbc49 Generate an app for Mac OS X 2015-09-09 01:38:06 +02:00
iabdalkader
8692546dad Add Mac OS X to PyInstaller spec file 2015-09-08 23:09:50 +02:00
iabdalkader
80259c7071 List Mac OS X ttys 2015-09-08 23:04:04 +02:00
iabdalkader
d031ea87f1 Implement set_pixel 2015-08-20 16:25:37 +02:00
iabdalkader
9f4664c2b8 Append version to PyInstaller packages 2015-08-19 18:17:39 +02:00
iabdalkader
3341c894c5 Update PyInstaller Spec file
* Bundle gtksourceview style/lang files
2015-08-19 16:41:21 +02:00
iabdalkader
ddf3a8a232 Disable pyinstaller console. 2015-08-19 00:20:51 +02:00
iabdalkader
161b2d6a43 Increase keypoints threshold 2015-08-15 16:46:31 +02:00
iabdalkader
e04f7ec0fb Disable built-in DFU on Windows 2015-08-14 16:06:42 +02:00
iabdalkader
29af37cb93 Load helloworld.py on start up 2015-08-13 23:14:08 +02:00
iabdalkader
3b45053d84 Remove lib scripts dir 2015-08-13 23:12:14 +02:00
iabdalkader
0b07c82a79 Update examples 2015-08-13 23:09:06 +02:00
iabdalkader
5903859ab5 Fix VREF threshold in self tests script 2015-08-06 23:13:49 +02:00
iabdalkader
0aa9f23d0a Add self-tests script 2015-08-06 12:19:00 +02:00
iabdalkader
a3d1413423 Update colorbar script 2015-08-06 12:16:52 +02:00
iabdalkader
0c9ec07aa7 Update colorbar script 2015-08-04 12:22:12 +02:00
iabdalkader
4b55a1f949 Add colorbar test script 2015-08-04 12:19:01 +02:00
iabdalkader
5c0e6b8710 Increase serial timeout 2015-08-04 10:41:33 +02:00
iabdalkader
be82b952c3 Use timeout_add to lower CPU usage 2015-08-04 10:34:01 +02:00
iabdalkader
730348f98c Use gtk main_quit instead of sys.exit 2015-07-31 15:18:59 +02:00
iabdalkader
ccc4de8488 Revert to numpy 2015-07-31 15:18:41 +02:00
iabdalkader
71d38bcca8 Pull binaries from firmware directory 2015-07-28 20:34:07 +02:00
iabdalkader
c866827e1b Add bundle dir 2015-07-28 20:17:13 +02:00
iabdalkader
85b956554f Add PyInstaller spec file and update mkpkg 2015-07-28 19:51:49 +02:00
iabdalkader
c91ff380ce Check udev file when connecting. 2015-07-18 14:19:33 +02:00
iabdalkader
d691482385 Update connection failure message 2015-07-16 08:16:49 +02:00
iabdalkader
9234a04f68 Fix typo 2015-07-12 04:15:31 +02:00
iabdalkader
80e025dcd7 Append .py when saving files
* Fixes issue #41
2015-07-09 06:36:26 +02:00
iabdalkader
9d51051ba8 Return FR_NO_FILE if built-in cascade not found 2015-07-09 04:38:07 +02:00
iabdalkader
6c1d1ede81 Fix IDE boards names 2015-07-09 03:51:00 +02:00
iabdalkader
b18104abec Fix c header cascade 2015-07-09 03:34:18 +02:00
iabdalkader
645070f11e Add c header cascade option 2015-07-09 02:21:04 +02:00
iabdalkader
50e95cf3d5 Cleanup the cascade generator
* Add command line args
* Add cascade name arg
* Add cascade info arg
2015-07-09 00:30:02 +02:00
iabdalkader
66db27c4c0 Add baudrate setting
* Add a baudrate combo selection
* Add baudrate to config file
* Use 921600 in the default config
2015-07-08 03:29:24 +02:00
iabdalkader
182a844cd2 Add FW version command
* Add FW version command to usbdbg.
* Add FW version function to openmv.py
* Check for major version in the IDE.
2015-07-04 03:44:42 +02:00
iabdalkader
0d0086f6b3 Import pydfu on Linux only for openmv module 2015-07-04 01:54:02 +02:00
iabdalkader
f851600d50 Import pydfu on Linux only 2015-07-04 01:51:58 +02:00
iabdalkader
46d2f9db18 Remove usb imports 2015-07-04 01:48:02 +02:00
Ibrahim Abd Elkader
65bb893790 Merge pull request #48 from dhylands/pydfu-improvement
pydfu - minor improvement in list construction.
2015-07-01 23:44:00 +03:00
Dave Hylands
1790d04c87 pydfu - minor improvement in list construction.
This was a change done by @dpgeorge in the micropython tree and
I'm basically migrating back to openmv.
2015-07-01 12:40:09 -07:00
Dave Hylands
2e27055f69 Fix pydfu.py to work with Beta 1 and Beta 2 versions of PyUSB
In PyUSB 1.0.0.b1, the usb.util.get_string function takes a lenght argument.
In PyUSB 1.0.0.b2, it no longer takes a length argument.

Since python2 seems to come with PyUSB 1.0.0.b1 and python3 seems to come
with 1.0.0.b2, this change allows the same source to work with either
version of PyUSB.
2015-06-21 06:41:01 -07:00