Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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]
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
        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")