high spent a while trying to get this to work at all and manage to find the resolution that dosen't course an error
from __future__ importdivisionimportioimporttimeimportpicameraimportnumpyasnpimportmatplotlib.pyplotaspltwidth=1024height=768# this workswidth=100height=100# this dont!stream=io.BytesIO()#open('image.data', 'wb')# Capture the image in RGB formatwithpicamera.PiCamera() ascamera:
#camera.resolution = (1024, 768)camera.resolution= (width, height)
camera.start_preview()
time.sleep(2)
st=time.time()
camera.capture(stream, 'rgba')
printtime.time() -st# Rewind the stream for readingstream.seek(0)
# Calculate the actual image size in the stream (accounting for rounding# of the resolution)fwidth= (width+31) //32*32fheight= (height+15) //16*16# Load the data in a three-dimensional array and crop it to the requested# resolutionimage=np.fromstring(stream.getvalue(), dtype=np.uint8)
image=image.reshape((fheight, fwidth, 4))[:height, :width, :]
# If you wish, the following code will convert the image's bytes into# floating point values in the range 0 to 1 (a typical format for some# sorts of analysis)#image = image.astype(np.float)#image = image / 255.0printimage,image.shapeprinttime.time() -stplt.imshow(image)
plt.show()
I currently do this via a funny bit of C but it would be supper if i could do it via python
Apart form that its a brill little library you have written WELL DONE!!
It would be good to see how fast it would work if it it would accept 100 x 100
Your tip about adding the alpha chan really speeds it up!
The text was updated successfully, but these errors were encountered:
I think this is something to do with the firmware as 100x100 raw captures used to work but stopped somewhere around firmware 600 (which is why the 100x100 tests is currently xfailed in picamera's test suite). Oddly, they work in YUV mode, but nothing else. However, I'm going to try and re-work the raw capture stuff this weekend anyway due to #73 so I'll have a go with 100x100 in RGB while I'm at it.
In the meantime, you might want to try a small res with a "normal" aspect ratio, like 160x120 - I seem to recall that works but I haven't tested it in a while.
Looks like the resizer now demands that sizes are aligned when it gets configured (both requested size and crop size). I spent a bit of the weekend re-working raw capture anyway while tinkering with #73 so this shouldn't be too difficult to tack on there as well.
Incidentally, in the new version RGB captures which don't involve the video-port or a resizer (as in your example code above) should be as fast as (or faster than) RGBA because picamera will now dispense with the use of a resizer and switch the still port to the required encoding when it's able to do so (this is all in the interests of getting picamera as close to raspiyuv in behaviour as possible to try and avoid bumping into quite so many bugs in raw capture!)
high spent a while trying to get this to work at all and manage to find the resolution that dosen't course an error
I currently do this via a funny bit of C but it would be supper if i could do it via python
Apart form that its a brill little library you have written WELL DONE!!
It would be good to see how fast it would work if it it would accept 100 x 100
Your tip about adding the alpha chan really speeds it up!
The text was updated successfully, but these errors were encountered: