def create_image(self, buffer, create_alpha=True): self.extension = self.extension or '.tif' self.no_data_value = None # FIXME: opencv doesn't support gifs, even worse, the library # segfaults when trying to decoding a gif. An exception is a # less drastic measure. try: if FORMATS[self.extension] == 'GIF': raise ValueError("opencv doesn't support gifs") except KeyError: pass if FORMATS[self.extension] == 'TIFF': self.buffer = buffer img0 = self.read_tiff(buffer, create_alpha) else: imagefiledata = cv.CreateMatHeader(1, len(buffer), cv.CV_8UC1) cv.SetData(imagefiledata, buffer, len(buffer)) img0 = cv.DecodeImageM(imagefiledata, cv.CV_LOAD_IMAGE_UNCHANGED) if FORMATS[self.extension] == 'JPEG': try: info = JpegFile.fromString(buffer).get_exif() if info: self.exif = info.data self.exif_marker = info.marker except Exception: pass return img0
def get_sample(filename, iscolor=cv.CV_LOAD_IMAGE_COLOR): image_cache = {} if not filename in image_cache: #filedata = filename imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) image_cache[filename] = cv.DecodeImageM(imagefiledata, iscolor) return image_cache[filename]
def image_from_archive(archive, name): """ Load image PGM file from tar archive. Used for tarfile loading and unit test. """ member = archive.getmember(name) filedata = archive.extractfile(member).read() imagefiledata = cv.CreateMat(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) return cv.DecodeImageM(imagefiledata)
def png_buf_to_opencv(filedata): imagefiledata = cv.CreateMat(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) return cv.DecodeImageM(imagefiledata)
cv.Copy(tmp, q1) cv.Copy(q4, tmp) cv.Copy(q2, q4) cv.Copy(tmp, q2) if __name__ == "__main__": if len(sys.argv) > 1: im = cv.LoadImage(sys.argv[1], cv.CV_LOAD_IMAGE_GRAYSCALE) else: url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/baboon.jpg' filedata = urllib2.urlopen(url).read() imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) im = cv.DecodeImageM(imagefiledata, cv.CV_LOAD_IMAGE_GRAYSCALE) realInput = cv.CreateImage(cv.GetSize(im), cv.IPL_DEPTH_64F, 1) imaginaryInput = cv.CreateImage(cv.GetSize(im), cv.IPL_DEPTH_64F, 1) complexInput = cv.CreateImage(cv.GetSize(im), cv.IPL_DEPTH_64F, 2) cv.Scale(im, realInput, 1.0, 0.0) cv.Zero(imaginaryInput) cv.Merge(realInput, imaginaryInput, None, None, complexInput) dft_M = cv.GetOptimalDFTSize(im.height - 1) dft_N = cv.GetOptimalDFTSize(im.width - 1) dft_A = cv.CreateMat(dft_M, dft_N, cv.CV_64FC2) image_Re = cv.CreateImage((dft_N, dft_M), cv.IPL_DEPTH_64F, 1) image_Im = cv.CreateImage((dft_N, dft_M), cv.IPL_DEPTH_64F, 1)
def lin2srgb(x): a = 0.055 return numpy.where(x <= 0.0031308, x * 12.92, (1 + a) * numpy.power(x, 1 / 2.4) - a) if __name__ == "__main__": if len(sys.argv) > 1: img0 = cv.LoadImageM( sys.argv[1], cv.CV_LOAD_IMAGE_COLOR) else: url = 'https://code.ros.org/svn/opencv/trunk/opencv/samples/c/lena.jpg' filedata = urllib2.urlopen(url).read() imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1) cv.SetData(imagefiledata, filedata, len(filedata)) img0 = cv.DecodeImageM(imagefiledata, cv.CV_LOAD_IMAGE_COLOR) cv.NamedWindow("original", 1) cv.ShowImage("original", img0) # Image was originally bytes in range 0-255. Turn it into an array of floats in range 0.0 - 1.0 n = numpy.asarray(img0) / 255.0 # Use NumPy to do some transformations on the image # Negate the image by subtracting it from 1.0 cv.NamedWindow("negative") cv.ShowImage("negative", cv.fromarray(1.0 - n)) # Assume the image was sRGB, and compute the linear version. cv.NamedWindow("linear")