Difference between revisions of "Convex Mirror"
From Robert-Depot
Line 1: | Line 1: | ||
[[Home | <<< back to Wiki Home]] | [[Home | <<< back to Wiki Home]] | ||
− | + | Convex Mirror | |
+ | |||
+ | http://www.wga.hu/detail/p/parmigia/convex.jpg | ||
+ | |||
+ | <blockquote> | ||
+ | Francesco one day set himself | ||
+ | To take his own portrait, looking at himself from that purpose | ||
+ | In a convex mirror, such as is used by barbers . . . | ||
+ | He accordingly caused a ball of wood to be made | ||
+ | By a turner, and having divided it in half and | ||
+ | Brought it to the size of the mirror, he set himself | ||
+ | With great art to copy all that he saw in the glass | ||
+ | </blockquote> | ||
+ | |||
=GCODE= | =GCODE= | ||
*Store home: | *Store home: |
Revision as of 13:23, 27 December 2013
Convex Mirror
Francesco one day set himself To take his own portrait, looking at himself from that purpose In a convex mirror, such as is used by barbers . . . He accordingly caused a ball of wood to be made By a turner, and having divided it in half and Brought it to the size of the mirror, he set himself With great art to copy all that he saw in the glass
Contents
[hide]GCODE
- Store home:
(storing home) G90 G92 X47.0 Y47.0 M4
Tests
- draw a circle on blank image:
convert ~/Pictures/convex_mirror_storefront/work/blank.jpg -stroke White -fill none -strokewidth 1 -draw "circle 932, 932, 2, 932" ~/Pictures/convex_mirror_storefront/work/just_circle.png
- convert to pnm:
convert ~/Pictures/convex_mirror_storefront/work/just_circle.png ~/Pictures/convex_mirror_storefront/work/just_circle.pnm
- potrace to json:
potrace ~/Pictures/convex_mirror_storefront/work/just_circle.pnm -W 30.0 -H 30.0 -M 4.0 -i -a 0 -b geojson -s -o ~/Pictures/convex_mirror_storefront/work/just_circle.json
- json to text:
/json_to_txt.py ~/Pictures/convex_mirror_storefront/work/just_circle.json ~/Pictures/convex_mirror_storefront/work/just_circle.txt 0.1
- txt to nc:
./render_gcode.py ~/Pictures/convex_mirror_storefront/work/just_circle.txt ~/Pictures/convex_mirror_storefront/work/just_circle.nc 5.0 5.0 1.0 100.0
- stream to plotter:
./stream3.py ~/Pictures/convex_mirror_storefront/work/just_circle.nc /dev/tty.usbmodem1a1241
Workflow
RPi side
- OSX:
killall PTPCamera
- take photo on raspberry pi:
gphoto2 --capture-image-and-download --filename capt0004.jpg
- send to laptop:
scp capt0004.jpg rtwomey@192.168.2.1:~/Pictures/raspi
- USB reset device:
usbreset /dev/bus/usb/001/004
OS X side
- crop:
convert ~/Pictures/raspi/frame0001.jpg -crop 1450x1450+779+275 +repage square0001.jpg
- bg subtract:
python bgsubtract.py square0002.jpg square0008.jpg 20 2
- edge detect:
python edge.py square0001.jpg 20 255
- convert to pnm:
convert square0001_edge.png edge0001.pnm
- vectorize:
potrace edge0001.pnm --tight -i -s -o frame0001.svg
- send to gcode machine:
Helper script:
python process_image.py ~/Pictures/raspi/frame0024.jpg
- produces frame0024.svg
Background Subtract
- subtract one image from background with given threshold and dilations:
python bgsubtract.py background.jpg square.jpg 66 10
Processing from commandline
- install processing-java from tools menu in processing
- run from command line:
processing-java --sketch=/Users/rtwomey/processing/dm_xml/convexmirror_cmdline --output=tmp/convexmirror --run --force
- NOTE: all filenames in the app need full paths.
- run workflow with processing from commandline:
python bgprocessing.py ~/Pictures/raspi/frame0031.jpg
draw a circle
- add a circle to background:
convert background.jpg -stroke White -fill none -strokewidth 1 -draw 'circle 715,740 35,740' bgcircle.png
Error Image + Drawing Image
- compute new contours from error image. NOT DONE.
- accumulate error image. NOT DONE.
- accumulate drawing image. NOT DONE.