def __init__(self, **traits):
        super(HistDemo, self).__init__(**traits)
        img = cv.imread("lena.jpg")
        gray_img = cv.Mat()
        cv.cvtColor(img, gray_img, cv.CV_BGR2GRAY)
        self.img = gray_img
        self.img2 = self.img.clone()
        result = cv.MatND()

        r = cv.vector_float32([0, 256])
        ranges = cv.vector_vector_float32([r, r])

        cv.calcHist(
            cv.vector_Mat([self.img]),
            channels=cv.vector_int([0, 1]),
            mask=cv.Mat(),
            hist=result,
            histSize=cv.vector_int([256]),
            ranges=ranges,
        )

        data = ArrayPlotData(x=np.arange(0, len(result[:])), y=result[:])
        self.plot = Plot(data, padding=10)
        line = self.plot.plot(("x", "y"))[0]
        self.select_tool = RangeSelection(line, left_button_selects=True)
        line.tools.append(self.select_tool)
        self.select_tool.on_trait_change(self._selection_changed, "selection")
        line.overlays.append(RangeSelectionOverlay(component=line))

        cv.imshow("Hist Demo", self.img)

        self.timer = Timer(50, self.on_timer)
Ejemplo n.º 2
0
    def __init__(self, **traits):
        super(HistDemo, self).__init__(**traits)
        img = cv.imread("lena.jpg")
        gray_img = cv.Mat()
        cv.cvtColor(img, gray_img, cv.CV_BGR2GRAY)
        self.img = gray_img
        self.img2 = self.img.clone()
        result = cv.MatND()

        r = cv.vector_float32([0, 256])
        ranges = cv.vector_vector_float32([r, r])

        cv.calcHist(cv.vector_Mat([self.img]),
                    channels=cv.vector_int([0, 1]),
                    mask=cv.Mat(),
                    hist=result,
                    histSize=cv.vector_int([256]),
                    ranges=ranges)

        data = ArrayPlotData(x=np.arange(0, len(result[:])), y=result[:])
        self.plot = Plot(data, padding=10)
        line = self.plot.plot(("x", "y"))[0]
        self.select_tool = RangeSelection(line, left_button_selects=True)
        line.tools.append(self.select_tool)
        self.select_tool.on_trait_change(self._selection_changed, "selection")
        line.overlays.append(RangeSelectionOverlay(component=line))

        cv.imshow("Hist Demo", self.img)

        self.timer = Timer(50, self.on_timer)
Ejemplo n.º 3
0
def get_focus_measure(src, kind):
#    from numpy import r_
#    from scipy import fft
#    from pylab import plot, show
#    w = 100
#    h = 100
#    x = (640 - w) / 2
#    y = (480 - h) / 2
#    src = crop(src, x, y, w, h)
#    src = grayspace(src)
#    d = src.ndarray
#
# #    print d[0]
# #    print d[-1]
#    fftsig = fft(d)
#    d = abs(fftsig)
#    print d.shape
#    dst = src.clone()
#    cv.convertScaleAbs(cv.asMat(d), dst, 1, 0)
#    return dst

#    xs = xrange(len(ys))
#    plot(xs, ys)
#    show()
#    N = len(d)
#    f = 50000 * r_[0:(N / 2)] / N
#    n = len(f)
# #    print f
#    d = d.transpose()
#    d = abs(fftsig[:n]) / N
#    print d
# #    plot(f, d[0], 'b', f, d[1], 'g', f, d[2], 'r')
#    plot(f, d)
#    show()

    planes = cv.vector_Mat()
    src = cv.asMat(src)
    laplace = cv.Mat(src.size(), cv.CV_16SC1)
    colorlaplace = cv.Mat(src.size(), cv.CV_8UC3)

    cv.split(src, planes)
    for plane in planes:
        cv.Laplacian(plane, laplace, 3)
        cv.convertScaleAbs(laplace, plane, 1, 0)

    cv.merge(planes, colorlaplace)
    f = colorlaplace.ndarray.flatten()
#    f.sort()
#    print f[-int(len(f) * 0.1):], int(len(f) * 0.1), len(f)
#    len(f)
    return f[-int(len(f) * 0.1):].mean()
Ejemplo n.º 4
0
def isolate_color(src, channel):
    planes = cv.vector_Mat()
    cv.split(src, planes)
    w, h = src.size()
    for i in range(3):
        if i == channel:
            continue
        planes[i] = cv.Mat(src.size(), cv.CV_8UC1)

    dst = cv.Mat(src.size(), cv.CV_8UC3)
    cv.merge(planes,
              dst)
    print dst
    return dst
Ejemplo n.º 5
0
# -*- coding: utf-8 -*-

import pyopencv as cv
import numpy as np

img = cv.imread("fruits_section.jpg")
img_hsv = cv.Mat()
cv.cvtColor(img, img_hsv, cv.CV_BGR2HSV)

channels = cv.vector_int([0, 1])
result = cv.MatND()

r = cv.vector_float32([0, 256])
ranges = cv.vector_vector_float32([r, r])

cv.calcHist(cv.vector_Mat([img_hsv]), channels, cv.Mat(), result,
            cv.vector_int([40, 40]), ranges)

result[:] /= np.max(result[:]) / 255
2  ###
img2 = cv.imread("fruits.jpg")
img_hsv2 = cv.Mat()
cv.cvtColor(img2, img_hsv2, cv.CV_BGR2HSV)

img_bp = cv.Mat()
cv.calcBackProject(cv.vector_Mat([img_hsv2]),
                   channels=channels,
                   hist=result,
                   backProject=img_bp,
                   ranges=ranges)
3  ###
# -*- coding: utf-8 -*-

import pyopencv as cv
import numpy as np

img = cv.imread("fruits_section.jpg") 
img_hsv = cv.Mat()
cv.cvtColor(img, img_hsv, cv.CV_BGR2HSV) 

channels = cv.vector_int([0, 1])
result = cv.MatND()

r = cv.vector_float32([0, 256])
ranges = cv.vector_vector_float32([r, r])

cv.calcHist(cv.vector_Mat([img_hsv]), channels, cv.Mat(),  
            result, cv.vector_int([40, 40]), ranges) 

result[:] /= np.max(result[:]) / 255 
2###
img2 = cv.imread("fruits.jpg") 
img_hsv2 = cv.Mat()
cv.cvtColor(img2, img_hsv2, cv.CV_BGR2HSV)

img_bp = cv.Mat()
cv.calcBackProject(cv.vector_Mat([img_hsv2]), 
                   channels=channels, 
                   hist=result, 
                   backProject=img_bp, 
                   ranges = ranges) 
3###
# -*- coding: utf-8 -*-
import pyopencv as cv
import numpy as np

img = cv.imread("lena.jpg")
result = cv.MatND()

r = cv.vector_float32([0, 256])
ranges = cv.vector_vector_float32([r, r])

cv.calcHist(cv.vector_Mat([img]),
            channels=cv.vector_int([0, 1]),
            mask=cv.Mat(),
            hist=result,
            histSize=cv.vector_int([30, 20]),
            ranges=ranges)

hist, _x, _y = np.histogram2d(img[:, :, 0].flatten(),
                              img[:, :, 1].flatten(),
                              bins=(30, 20),
                              range=[(0, 256), (0, 256)])

print np.all(hist == result[:])
Ejemplo n.º 8
0
# -*- coding: utf-8 -*-
import pyopencv as cv
import numpy as np

img = cv.imread("lena.jpg")
result = cv.MatND()

r = cv.vector_float32([0, 256])
ranges = cv.vector_vector_float32([r, r])

cv.calcHist(
    cv.vector_Mat([img]),
    channels=cv.vector_int([0, 1]),
    mask=cv.Mat(),
    hist=result,
    histSize=cv.vector_int([30, 20]),
    ranges=ranges,
)

hist, _x, _y = np.histogram2d(img[:, :, 0].flatten(), img[:, :, 1].flatten(), bins=(30, 20), range=[(0, 256), (0, 256)])

print np.all(hist == result[:])