Alright, so my post Getting Webcam Images with Python and OpenCV 2 was wrong! I did not fully understand how to read the OpenCV API documentation and instead of demonstrating how to capture an image with OpenCV 2, I just demonstrated a way to capture an image with OpenCV 1.x in a way different from the example I first followed. Here is how one would actually use the newer, OO, consolidated OpenCV 2 Python API.
import cv2 # Camera 0 is the integrated web cam on my netbook camera_port = 0 #Number of frames to throw away while the camera adjusts to light levels ramp_frames = 30 # Now we can initialize the camera capture object with the cv2.VideoCapture class. # All it needs is the index to a camera port. camera = cv2.VideoCapture(camera_port) # Captures a single image from the camera and returns it in PIL format def get_image(): # read is the easiest way to get a full image out of a VideoCapture object. retval, im = camera.read() return im # Ramp the camera - these frames will be discarded and are only used to allow v4l2 # to adjust light levels, if necessary for i in xrange(ramp_frames): temp = get_image() print("Taking image...") # Take the actual image we want to keep camera_capture = get_image() file = "/home/codeplasma/test_image.png" # A nice feature of the imwrite method is that it will automatically choose the # correct format based on the file extension you provide. Convenient! cv2.imwrite(file, camera_capture) # You'll want to release the camera, otherwise you won't be able to create a new # capture object until your script exits del(camera)