def set_image_buffer(self, image_buffer): buffer_len = len(image_buffer) imagefiledata = cv.CreateMatHeader(1, buffer_len, cv.CV_8UC1) cv.SetData(imagefiledata, image_buffer, buffer_len) self.image = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_COLOR) self.size = cv.GetSize(self.image) self.mode = "BGR"
def createImage(self, image_data, width, height, depth, color_code, jpeg=False): if jpeg: length = len(image_data) image = cv.CreateMatHeader(1, length, cv.CV_8UC1) cv.SetData(image, image_data, length) return cv.DecodeImage(image) else: image = cv.CreateImageHeader((width, height), depth, 4) cv.SetData(image, image_data)
def read(self, extension=None, quality=options.QUALITY): with tempfile.NamedTemporaryFile(suffix=self.extension) as temp_file: img = self.image if FORMATS[self.extension] == 'JPEG': img = cv.DecodeImage( cv.EncodeImage(".jpeg", img, [cv.CV_IMWRITE_JPEG_QUALITY, quality])) cv.SaveImage(temp_file.name, img) temp_file.seek(0) return temp_file.read()
def create_image(self, buffer): # FIXME: opencv doesn't support gifs, even worse, the library # segfaults when trying to decoding a gif. An exception is a # less drastic measure. if FORMATS[self.extension] == 'GIF': raise ValueError("opencv doesn't support gifs") imagefiledata = cv.CreateMatHeader(1, len(buffer), cv.CV_8UC1) cv.SetData(imagefiledata, buffer, len(buffer)) img0 = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_COLOR) return img0
def scanPic(self, uri): mr = MediaResource(graph, uri) jpg, mtime = mr.getImageAndMtime(1000) mat = cv.CreateMatHeader(1, len(jpg), cv.CV_8UC1) cv.SetData(mat, jpg, len(jpg)) img = cv.DecodeImage(mat) grayscale = cv.CreateImage((img.width, img.height), 8, 1) cv.CvtColor(img, grayscale, cv.CV_RGB2GRAY) cv.EqualizeHist(grayscale, grayscale) storage = cv.CreateMemStorage(0) faces = cv.HaarDetectObjects( grayscale, self.cascade, storage, 1.2, # scaleFactor between scans 3, # minNeighbors cv.CV_HAAR_DO_CANNY_PRUNING, (20, 20) # min window size ) size = cv.GetSize(grayscale) for f, neighbors in faces: desc = { 'source': str(uri), 'types': [PHO.Crop], 'tag': 'face', 'x1': f[0] / size[0], 'y1': f[1] / size[1], 'x2': (f[0] + f[2]) / size[0], 'y2': (f[1] + f[3]) / size[1], # this ought to have a padded version for showing, and # also the face coords inside that padded version, for # recognition. Note that the padded one may run into # the margins 'neighbors': neighbors, } alt = restkit.Resource( uri.replace('http://photo.bigasterisk.com/', 'http://bang:8031/') + "/alt") resp = alt.post(payload=json.dumps(desc), headers={ 'content-type': 'application/json', 'x-foaf-agent': 'http://bigasterisk.com/tool/scanFace' }) print resp.status, resp.body_string()
def load_sample(name=None): if len(argv) > 1: img0 = cv.LoadImage(argv[1], cv.CV_LOAD_IMAGE_COLOR) elif name is not None: try: img0 = cv.LoadImage(name, cv.CV_LOAD_IMAGE_COLOR) except IOError: urlbase = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/' file = name.split('/')[-1] filedata = urllib2.urlopen(urlbase+file).read() imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) img0 = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_COLOR) return img0
cv.Ellipse(image04, center, size, angle, 0, 360, color, 2, cv.CV_AA, 0) # Show image. HighGUI use. cv.ShowImage("Result", image04) if __name__ == '__main__': if len(sys.argv) > 1: source_image = cv.LoadImage(sys.argv[1], cv.CV_LOAD_IMAGE_GRAYSCALE) else: url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/stuff.jpg' filedata = urllib2.urlopen(url).read() imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) source_image = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_GRAYSCALE) # Create windows. cv.NamedWindow("Source", 1) cv.NamedWindow("Result", 1) # Show the image. cv.ShowImage("Source", source_image) fe = FitEllipse(source_image, 70) print "Press any key to exit" cv.WaitKey(0) cv.DestroyWindow("Source") cv.DestroyWindow("Result")
# copy edge points cv.Copy(im, col_edge, edge) # show the im cv.ShowImage(win_name, col_edge) if __name__ == '__main__': if len(sys.argv) > 1: im = cv.LoadImage(sys.argv[1], cv.CV_LOAD_IMAGE_COLOR) else: url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/fruits.jpg' filedata = urllib2.urlopen(url).read() imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) im = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_COLOR) # create the output im col_edge = cv.CreateImage((im.width, im.height), 8, 3) # convert to grayscale gray = cv.CreateImage((im.width, im.height), 8, 1) edge = cv.CreateImage((im.width, im.height), 8, 1) cv.CvtColor(im, gray, cv.CV_BGR2GRAY) # create the window cv.NamedWindow(win_name, cv.CV_WINDOW_AUTOSIZE) # create the trackbar cv.CreateTrackbar(trackbar_name, win_name, 1, 100, on_trackbar)
def create_image(self, buffer): imagefiledata = cv.CreateMatHeader(1, len(buffer), cv.CV_8UC1) cv.SetData(imagefiledata, buffer, len(buffer)) img0 = cv.DecodeImage(imagefiledata, cv.CV_LOAD_IMAGE_COLOR) return img0