Python cv2 模块,calcHist() 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用cv2.calcHist()

项目:imgpedia    作者:scferrada    | 项目源码 | 文件源码
def compute(self, frame):
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        descriptor = []
        dominantGradients = np.zeros_like(frame)
        maxGradient = cv2.filter2D(frame, cv2.CV_32F, self.kernels[0])
        maxGradient = np.absolute(maxGradient)
        for k in range(1,len(self.kernels)):
            kernel = self.kernels[k]
            gradient = cv2.filter2D(frame, cv2.CV_32F, kernel)
            gradient = np.absolute(gradient)
            np.maximum(maxGradient, gradient, maxGradient)
            indices = (maxGradient == gradient)
            dominantGradients[indices] = k

        frameH, frameW = frame.shape
        for row in range(self.rows):
            for col in range(self.cols):
                mask = np.zeros_like(frame)
                mask[((frameH/self.rows)*row):((frameH/self.rows)*(row+1)),(frameW/self.cols)*col:((frameW/self.cols)*(col+1))] = 255
                hist = cv2.calcHist([dominantGradients], [0], mask, self.bins, self.range)
                hist = cv2.normalize(hist, None)
                descriptor.append(hist)
        return np.concatenate([x for x in descriptor])
项目:imgpedia    作者:scferrada    | 项目源码 | 文件源码
def compute(self, frame):
        #frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        dx = cv2.filter2D(frame, cv2.CV_32F, self.xkernel)
        dy = cv2.filter2D(frame, cv2.CV_32F, self.ykernel)
        orientations = np.zeros_like(dx)
        magnitudes = np.zeros_like(dx)
        cv2.cartToPolar(dx,dy, magnitudes,orientations)
        descriptor = []
        frameH, frameW = frame.shape
        mask_threshold = magnitudes <= self.threshold
        for row in range(self.rows):
            for col in range(self.cols):
                mask = np.zeros_like(frame)
                mask[((frameH/self.rows)*row):((frameH/self.rows)*(row+1)),(frameW/self.cols)*col:((frameW/self.cols)*(col+1))] = 1
                mask[mask_threshold] = 0
                a_, b_ = mask.shape
                hist = cv2.calcHist([orientations], self.channel, mask, [self.bins], self.range)
                hist = cv2.normalize(hist, None)
                descriptor.append(hist)
        return np.concatenate([x for x in descriptor])
项目:retinal-exudates-detection    作者:getsanjeev    | 项目源码 | 文件源码
def calculate_entropy(image):
    entropy = image.copy()
    sum = 0
    i = 0
    j = 0
    while i < entropy.shape[0]:
        j = 0
        while j < entropy.shape[1]:
            sub_image = entropy[i:i+10,j:j+10]
            histogram = cv2.calcHist([sub_image],[0],None,[256],[0,256])
            sum = 0
            for k in range(256):
                if histogram[k] != 0:                   
                    sum = sum + (histogram[k] * math.log(histogram[k]))
                k = k + 1
            entropy[i:i+10,j:j+10] = sum
            j = j+10
        i = i+10
    ret2,th2 = cv2.threshold(entropy,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
    newfin = cv2.erode(th2, cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)), iterations=1)
    return newfin
项目:img2d3d_segmentation    作者:psodhi    | 项目源码 | 文件源码
def leftRightHistEqualize(self, img_left, img_right) :

        lookup = np.zeros([256], np.uint8)
        cdf_new = np.zeros([256])
        rows,cols = img_right.shape
        img_left_new = np.zeros([rows,cols], np.uint8)

        hist_left = cv2.calcHist([img_left],[0],None,[256],[0,255])
        hist_right = cv2.calcHist([img_right],[0],None,[256],[0,255])
        cdf_left_norm = hist_left.cumsum() /(rows*cols)
        cdf_right_norm = hist_right.cumsum() /(rows*cols)

        for i in range(0,256):
            lookup[i] = np.argmin(np.abs(cdf_left_norm[i]-cdf_right_norm))
            # cdf_new[i] = cdf_right_norm[lookup[i]]
            img_left_new[ np.where(img_left==i) ] = lookup[i]

        return img_left_new
项目:piwall-cvtools    作者:infinnovation    | 项目源码 | 文件源码
def gimpMarkup(self, hints = gimpContours, image = "2x2-red-1.jpg", feature = "top-left-monitor"):
        r = Rectangle(*hints[image][feature])
        contour = r.asContour()
        cv2.drawContours(self.img, [contour], -1, (0, 255, 0), 5 )
        title = self.tgen.next(feature)
        if self.show: ImageViewer(self.img).show(window=title, destroy = self.destroy, info = self.info, thumbnailfn = title)
        roi = r.getRoi(self.img)
        self.rois[feature] = roi
        # Histogram the ROI to get the spread of intensities, in each channel and grayscale
        title = '%s-roi.jpg' % feature
        if self.show: ImageViewer(roi).show(window=title, destroy = self.destroy, info = self.info, thumbnailfn = title)
        colors = ('b','g','r')
        for i,col in enumerate(colors):
            hist = cv2.calcHist([roi], [i], None, [256], [0,256])
            plt.plot(hist, color = col)
            plt.xlim([0,256])
            #plt.hist(roi.ravel(), 256, [0,256])
        plt.show()
        cmap = ColorMapper(roi)
        cmap.mapit(1)
        title = self.tgen.next('colourMapping')
        if self.show: ImageViewer(self.img).show(window=title, destroy = self.destroy, info = self.info, thumbnailfn = title)
        cv2.waitKey()
项目:Image-search    作者:rahulremanan    | 项目源码 | 文件源码
def describe(self, image):
        # Compute a 3D histogram in the RGB colorspace and normalize.
        hist = cv2.calcHist([image], [0, 1, 2],
            None, self.bins, [0, 256, 0, 256, 0, 256])
        hist = cv2.normalize(hist, hist)

        # Return the 3D histogram output as a flattened array.
        return hist.flatten()
项目:retinal-exudates-detection    作者:getsanjeev    | 项目源码 | 文件源码
def calculate_entropy(image):
    entropy = image.copy()
    sum = 0
    i = 0
    j = 0
    while i < entropy.shape[0]:
        j = 0
        while j < entropy.shape[1]:
            sub_image = entropy[i:i+10,j:j+10]
            histogram = cv2.calcHist([sub_image],[0],None,[256],[0,256])
            sum = 0
            for k in range(256):
                if histogram[k] != 0:                   
                    sum = sum + (histogram[k] * math.log(histogram[k]))
                k = k + 1
            entropy[i:i+10,j:j+10] = sum
            j = j+10
        i = i+10
    ret2,th2 = cv2.threshold(entropy,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
    newfin = cv2.erode(th2, cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)), iterations=1)
    return newfin
项目:sparks    作者:ImpactHorizon    | 项目源码 | 文件源码
def accumulated_histogram(images, args):
    histogram = args[0]
    try:
        image, x, y = images.get(timeout=0.3)
    except:
        return
    hsv = cv2.cvtColor(np.array(image, dtype=np.uint8), cv2.COLOR_RGB2HSV)
    current_histogram = histogram.get()    
    new_histogram = list(map(lambda x: cv2.calcHist([hsv[:,:,x]], 
                                                [0], 
                                                None, 
                                                [256], 
                                                [0, 256], 
                                                hist=current_histogram[x], 
                                                accumulate=True), 
                    range(3)))
    histogram.put(new_histogram)
    images.task_done()
项目:pokedex-as-it-should-be    作者:leotok    | 项目源码 | 文件源码
def extract_color_histogram(image, bins=(8, 8, 8)):
    # extract a 3D color histogram from the HSV color space using
    # the supplied number of `bins` per channel
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
    hist = cv2.calcHist([hsv], [0, 1, 2], None, bins, [0, 180, 0, 256, 0, 256])

    # handle normalizing the histogram if we are using OpenCV 2.4.X
    if imutils.is_cv2():
        hist = cv2.normalize(hist)

    # otherwise, perform "in place" normalization in OpenCV 3 (I
    # personally hate the way this is done
    else:
        cv2.normalize(hist, hist)

    # return the flattened histogram as the feature vector
    return hist.flatten()
项目:onionstack    作者:ntddk    | 项目源码 | 文件源码
def main():
    target_im = cv2.imread(sys.argv[1])
    target_hist = cv2.calcHist([target_im], [0], None, [256], [0, 256])

    for i in list:
        comparing_im = cv2.imread(i)
        comparing_hist = cv2.calcHist([comparing_im], [0], None, [256], [0, 256])
        diff = cv2.compareHist(target_hist, comparing_hist, 0)
        if diff > float(sys.argv[2]):
            print i,
            print diff
项目:imgpedia    作者:scferrada    | 项目源码 | 文件源码
def compute(self, frame):
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        frameH, frameW = frame.shape
        descriptor = []
        for row in range(self.rows):
            for col in range(self.cols):
                mask = np.zeros_like(frame)
                mask[((frameH/self.rows)*row):((frameH/self.rows)*(row+1)),(frameW/self.cols)*col:((frameW/self.cols)*(col+1))] = 1
                hist = cv2.calcHist([frame], self.channel, mask, [self.bins], self.range)
                hist = cv2.normalize(hist, None)
                descriptor.append(hist)
        return np.concatenate([x for x in descriptor])
项目:ATX    作者:NetEaseGame    | 项目源码 | 文件源码
def test_features():
    from atx.drivers.android_minicap import AndroidDeviceMinicap
    cv2.namedWindow("preview")
    d = AndroidDeviceMinicap()

    # r, h, c, w = 200, 100, 200, 100
    # track_window = (c, r, w, h)
    # oldimg = cv2.imread('base1.png')
    # roi = oldimg[r:r+h, c:c+w]
    # hsv_roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
    # mask = cv2.inRange(hsv_roi, 0, 255)
    # roi_hist = cv2.calcHist([hsv_roi], [0], mask, [180], [0,180])
    # cv2.normalize(roi_hist, roi_hist, 0, 255, cv2.NORM_MINMAX)
    # term_cirt = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT,  10, 1)


    while True:
        try:
            w, h = d._screen.shape[:2]
            img = cv2.resize(d._screen, (h/2, w/2))
            cv2.imshow('preview', img)

            hist = cv2.calcHist([img], [0], None, [256], [0,256])
            plt.plot(plt.hist(hist.ravel(), 256))
            plt.show()
            # if img.shape == oldimg.shape:
            #     # hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
            #     # ret, track_window = cv2.meanShift(hsv, track_window, term_cirt)
            #     # x, y, w, h = track_window
            #     cv2.rectangle(img, (x, y), (x+w, y+h), 255, 2)
            #     cv2.imshow('preview', img)
            # # cv2.imshow('preview', img)
            cv2.waitKey(1)
        except KeyboardInterrupt:
            break

    cv2.destroyWindow('preview')
项目:ms-pacman    作者:anassinator    | 项目源码 | 文件源码
def _classify_partition(self, partition):
        """Classifies a partition.

        Args:
            partition: Partition.

        Returns:
            GameMapObjects enum.
        """
        histogram = cv2.calcHist([partition], [0], None, [256], [0, 256])
        return self._classify_histogram(histogram)
项目:checkmymeat    作者:kendricktan    | 项目源码 | 文件源码
def describe(image, mask = None):
    hist = cv2.calcHist([image], [0, 1, 2], mask, [8,8,8], [0, 256, 0, 256, 0, 256])    
    cv2.normalize(hist, hist)    
    return hist.flatten()
项目:checkmymeat    作者:kendricktan    | 项目源码 | 文件源码
def describe(image, mask = None):
    hist = cv2.calcHist([image], [0, 1, 2], mask, [8,8,8], [0, 256, 0, 256, 0, 256])    
    cv2.normalize(hist, hist)    
    return hist.flatten()
项目:AutomatorX    作者:xiaoyaojjian    | 项目源码 | 文件源码
def test_features():
    from atx.drivers.android_minicap import AndroidDeviceMinicap
    cv2.namedWindow("preview")
    d = AndroidDeviceMinicap()

    # r, h, c, w = 200, 100, 200, 100
    # track_window = (c, r, w, h)
    # oldimg = cv2.imread('base1.png')
    # roi = oldimg[r:r+h, c:c+w]
    # hsv_roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
    # mask = cv2.inRange(hsv_roi, 0, 255)
    # roi_hist = cv2.calcHist([hsv_roi], [0], mask, [180], [0,180])
    # cv2.normalize(roi_hist, roi_hist, 0, 255, cv2.NORM_MINMAX)
    # term_cirt = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT,  10, 1)


    while True:
        try:
            w, h = d._screen.shape[:2]
            img = cv2.resize(d._screen, (h/2, w/2))
            cv2.imshow('preview', img)

            hist = cv2.calcHist([img], [0], None, [256], [0,256])
            plt.plot(plt.hist(hist.ravel(), 256))
            plt.show()
            # if img.shape == oldimg.shape:
            #     # hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
            #     # ret, track_window = cv2.meanShift(hsv, track_window, term_cirt)
            #     # x, y, w, h = track_window
            #     cv2.rectangle(img, (x, y), (x+w, y+h), 255, 2)
            #     cv2.imshow('preview', img)
            # # cv2.imshow('preview', img)
            cv2.waitKey(1)
        except KeyboardInterrupt:
            break

    cv2.destroyWindow('preview')
项目:sparks    作者:ImpactHorizon    | 项目源码 | 文件源码
def accumulated_histogram(image, histogram):
    hist = list(map(lambda x: cv2.calcHist([image], 
                                    [x], 
                                    None, 
                                    [256], 
                                    [0, 256]), 
                    range(3)))
    for x in range(3):
        histogram[x] = np.add(hist[x].ravel(), histogram[x].ravel())                                
    return histogram
项目:shotdetect    作者:Zhujunnan    | 项目源码 | 文件源码
def run(self, video_path=None):
        if video_path is not None:
            self.video_path = video_path    
        assert (self.video_path is not None), "you should must the video path!"

        self.shots = []
        self.scores = []
        self.frames = []
        hists = []
        cap = cv2.VideoCapture(self.video_path)
        self.frame_count = cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT)
        self.fps = cap.get(cv2.cv.CV_CAP_PROP_FPS)
        while True:
            success, frame = cap.read()
            if not success:
                break
            self.frames.append(frame)
#            millis = cap.get(cv2.cv.CV_CAP_PROP_POS_MSEC)
#            print millis
            # compute RGB histogram for each frame
            chists = [cv2.calcHist([frame], [c], None, [__hist_size__], [0,256]) \
                          for c in range(3)]
            chists = np.array([chist for chist in chists])
            hists.append(chists.flatten())
        # compute hist  distances
        self.scores = [np.ndarray.sum(abs(pair[0] - pair[1])) for pair in zip(hists[1:], hists[:-1])]
项目:self-driving-truck    作者:aleju    | 项目源码 | 文件源码
def screens_show_same_scene(scr1, scr2):
    scr1 = ia.imresize_single_image(scr1, (50, 70))
    scr2 = ia.imresize_single_image(scr2, (50, 70))
    hist1 = cv2.calcHist([scr1[...,0], scr1[...,1], scr1[...,2]], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])
    hist2 = cv2.calcHist([scr2[...,0], scr2[...,1], scr2[...,2]], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])
    diff = np.sum(np.abs(hist1 - hist2))
    return diff <= MAX_PIXELDIFF
项目:hand-gesture-recognition-opencv    作者:mahaveerverma    | 项目源码 | 文件源码
def hand_capture(frame_in,box_x,box_y):
    hsv = cv2.cvtColor(frame_in, cv2.COLOR_BGR2HSV)
    ROI = np.zeros([capture_box_dim*capture_box_count,capture_box_dim,3], dtype=hsv.dtype)
    for i in xrange(capture_box_count):
        ROI[i*capture_box_dim:i*capture_box_dim+capture_box_dim,0:capture_box_dim] = hsv[box_y[i]:box_y[i]+capture_box_dim,box_x[i]:box_x[i]+capture_box_dim]
    hand_hist = cv2.calcHist([ROI],[0, 1], None, [180, 256], [0, 180, 0, 256])
    cv2.normalize(hand_hist,hand_hist, 0, 255, cv2.NORM_MINMAX)
    return hand_hist

# 2. Filters and threshold
项目:recognizeFitExercise    作者:tyiannak    | 项目源码 | 文件源码
def getLBP(img):
    img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    radius = 1
    n_points = 8 * radius
    lbpImage = (local_binary_pattern(img2, n_points, radius)).astype(int)**(1.0/radius)

    # block processing:
    lbpImages = block_view(lbpImage, ( int(lbpImage.shape[0] / 2), int(lbpImage.shape[1] / 4)))


    count = 0

    LBP = np.array([]); 
    for i in range(lbpImages.shape[0]):         # for each block:
        for j in range(lbpImages.shape[1]):
            count += 1
#           plt.subplot(4,2,count)
#           plt.imshow(lbpImages[i,j,:,:],cmap = cm.Greys_r)
#           plt.subplot(4,2,count+4*2/2)
#           print count*2+1
            LBPt = cv2.calcHist([lbpImages[i,j,:,:].astype('uint8')], [0], None, [8], [0, 256]) 
            LBP = np.append(LBP, LBPt[:,0]);
#           plt.plot(LBPt)
#   plt.show()


    Fnames = ["LBP"+str(i).zfill(2) for i in range(len(LBP))]

    return normalize(LBP).tolist(), Fnames
项目:recognizeFitExercise    作者:tyiannak    | 项目源码 | 文件源码
def getRGBS(img, PLOT = False):

    image = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

    # grab the image channels, initialize the tuple of colors,
    # the figure and the flattened feature vector   
    features = []
    featuresSobel = []
    Grayscale = cv2.cvtColor(img, cv2.cv.CV_BGR2GRAY)
    histG = cv2.calcHist([Grayscale], [0], None, [16], [0, 256])
    histG = histG / histG.sum()
    features.extend(histG[:,0].tolist())


    grad_x = np.abs(cv2.Sobel(Grayscale, cv2.CV_16S, 1, 0, ksize = 3, scale = 1, delta = 0, borderType = cv2.BORDER_DEFAULT))
    grad_y = np.abs(cv2.Sobel(Grayscale, cv2.CV_16S, 0, 1, ksize = 3, scale = 1, delta = 0, borderType = cv2.BORDER_DEFAULT))
    abs_grad_x = cv2.convertScaleAbs(grad_x)
    abs_grad_y = cv2.convertScaleAbs(grad_y)
    dst = cv2.addWeighted(abs_grad_x,0.5,abs_grad_y,0.5,0)
    histSobel = cv2.calcHist([dst], [0], None, [16], [0, 256])
    histSobel = histSobel / histSobel.sum()
    features.extend(histSobel[:,0].tolist())

    Fnames = []
    Fnames.extend(["Color-Gray"+str(i) for i in range(8)])
    Fnames.extend(["Color-GraySobel"+str(i) for i in range(8)])

    return features, Fnames
项目:slide-transition-detector    作者:brene    | 项目源码 | 文件源码
def are_similar(self, first, second):
        res = cv2.absdiff(first, second)
        hist = cv2.calcHist([res], [0], None, [256], [0, 256])
        return 1 - np.sum(hist[15::]) / np.sum(hist)
项目:slide-transition-detector    作者:brene    | 项目源码 | 文件源码
def are_similar(self, first, second):

        result = 0
        for i in xrange(3):
            hist1 = cv2.calcHist([first], [i], None, [256], [0,256])
            hist2 = cv2.calcHist([second], [i], None, [256], [0,256])
            result += cv2.compareHist(hist1, hist2, self.get_technique())

        return result / 3
项目:ddnn    作者:kunglab    | 项目源码 | 文件源码
def compute_hist(im):
    hist = cv2.calcHist([im], [0, 1, 2], None, [8, 8, 8],
                        [0, 256, 0, 256, 0, 256])
    hist = cv2.normalize(hist).flatten()
    return hist
项目:Recognition    作者:thautwarm    | 项目源码 | 文件源码
def __init__(self,frame,rect,method='m'):
        r,c,h,w=rect
        roi = frame[r:r+h, c:c+w]
        mask = cv2.inRange(roi, np.array((0.)), np.array((255.)))
        roi_hist = cv2.calcHist([roi],[0],mask,[16],[0,255])
        roi_hist=cv2.normalize(roi_hist,roi_hist,0,255,cv2.NORM_MINMAX)
        plotRects(frame,[rect])
        cv2.waitKey(0) 
        cv2.destroyAllWindows()
        self.roi_hist=roi_hist
        self.track_window=tuple(rect)
        self.m=method
        self.frame=frame
项目:Recognition    作者:thautwarm    | 项目源码 | 文件源码
def calHist(frame,rect):
        r,c,h,w=rect
        roi = frame[r:r+h, c:c+w]
        mask = cv2.inRange(roi, np.array((0.)), np.array((255.)))
        roi_hist = cv2.calcHist([roi],[0],mask,[255],[0,255])
        roi_hist=cv2.normalize(roi_hist,roi_hist,0,255,cv2.NORM_MINMAX)
        return roi_hist
项目:practical-python-opencv    作者:tomtec77    | 项目源码 | 文件源码
def plot_histogram(image, title, mask=None):
    chans = cv2.split(image)
    colors = ("b", "g", "r")
    plt.figure()
    plt.title(title)
    plt.xlabel("Bins")
    plt.ylabel("# of Pixels")

    for (chan, color) in zip(chans, colors):
        hist = cv2.calcHist([chan], [0], mask, [256], [0, 256])
        plt.plot(hist, color=color)
        plt.xlim([0, 256])
    plt.show()

# Parse the command line arguments
项目:pynephoscope    作者:neXyon    | 项目源码 | 文件源码
def hist_lines(image, start, end):
        scale = 4
        height = 1080

        result = np.zeros((height, 256 * scale, 1))

        hist = cv2.calcHist([image], [0], None, [256], [start, end])
        cv2.normalize(hist, hist, 0, height, cv2.NORM_MINMAX)
        hist = np.int32(np.around(hist))

        for x, y in enumerate(hist):
            cv2.rectangle(result, (x * scale, 0), ((x + 1) * scale, y), (255), -1)

        result = np.flipud(result)
        return result
项目:cv_ml    作者:techfort    | 项目源码 | 文件源码
def extract(img):
    return np.ravel(cv2.calcHist([img],[2],None,[126],[0,256]))
项目:cv_ml    作者:techfort    | 项目源码 | 文件源码
def extract(img):
    return np.ravel(cv2.calcHist([img],[1],None,[126],[0,256]))
项目:cv_ml    作者:techfort    | 项目源码 | 文件源码
def extract(img):
    return np.ravel(cv2.calcHist([img],[2],None,[126],[0,256]))
项目:cv_ml    作者:techfort    | 项目源码 | 文件源码
def extract(img):
    return np.ravel(cv2.calcHist([img],[2],None,[127],[0,256]))
项目:cv_ml    作者:techfort    | 项目源码 | 文件源码
def extract(img):
    return np.ravel(cv2.calcHist([img],[2],None,[126],[0,256]))
项目:Vehicle-Logo-Recognition    作者:xinyuexy    | 项目源码 | 文件源码
def BlockLBPH(img,minValue,maxValue,normed=True):
    '''????????LBP?????'''
    #?????bin???
    histSize=[maxValue-minValue+1]
    ranges=[minValue,maxValue+1]
    result=cv2.calcHist(img,[0],None,histSize,ranges)
    #???
    if normed:
        result=result/(int)(img.shape[0]*img.shape[1])
    return result.reshape(1,-1)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def gray_histogram_cmp_corr(self):
        self.threshold = .9

        gray_i = cv2.cvtColor(self.image_i, cv2.COLOR_BGR2GRAY)
        hist_i = cv2.calcHist([gray_i], [0], None, [256], [0, 256])

        gray_j = cv2.cvtColor(self.image_j, cv2.COLOR_BGR2GRAY)
        hist_j = cv2.calcHist([gray_j], [0], None, [256], [0, 256])

        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_CORREL)
        self.assertGreater(self.measure, self.threshold)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def gray_histogram_cmp_bhatta(self):
        self.threshold = .07

        gray_i = cv2.cvtColor(self.image_i, cv2.COLOR_BGR2GRAY)
        hist_i = cv2.calcHist([gray_i], [0], None, [256], [1, 256])

        gray_j = cv2.cvtColor(self.image_j, cv2.COLOR_BGR2GRAY)
        hist_j = cv2.calcHist([gray_j], [0], None, [256], [1, 256])

        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_BHATTACHARYYA)
        self.assertGreater(self.measure, self.threshold)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def gray_histogram_cmp_corr(self):
        self.threshold = .9

        gray_i = cv2.cvtColor(self.image_i, cv2.COLOR_BGR2GRAY)
        hist_i = cv2.calcHist([gray_i], [0], None, [256], [0, 256])

        gray_j = cv2.cvtColor(self.image_j, cv2.COLOR_BGR2GRAY)
        hist_j = cv2.calcHist([gray_j], [0], None, [256], [0, 256])

        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_CORREL)
        self.assertGreater(self.measure, self.threshold)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def gray_histogram_cmp_bhatta(self):
        threshold = .07

        gray_i = cv2.cvtColor(self.image_i, cv2.COLOR_BGR2GRAY)
        hist_i = cv2.calcHist([gray_i], [0], None, [256], [1, 256])

        gray_j = cv2.cvtColor(self.image_j, cv2.COLOR_BGR2GRAY)
        hist_j = cv2.calcHist([gray_j], [0], None, [256], [1, 256])

        measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_BHATTACHARYYA)
        self.assertGreater(measure, threshold)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def Harris_Corner(self):
        self.threshold = 0.999999999999
        temp_i = self.image_i.copy()
        temp1_i = self.image_i.copy()
        gray_i = cv2.cvtColor(temp_i, cv2.COLOR_BGR2GRAY)
        gray_i = numpy.float32(gray_i)
        dst_i = cv2.cornerHarris(gray_i,2,3,0.025)
        dst_i = cv2.dilate(dst_i,None)
        # Threshold for an optimal value, it may vary depending on the image.
        temp_i[dst_i<0.01*dst_i.max()]=[0,0,0]
        temp_i[dst_i>=0.01*dst_i.max()]=[255,255,255]
        temp1_i[dst_i>0.01*dst_i.max()]=[0,0,255]
        hist_i = cv2.calcHist([temp_i], [0], None, [256], [0, 256])
        temp_j = self.image_j.copy()
        temp1_j = self.image_j.copy()
        gray_j = cv2.cvtColor(temp_j, cv2.COLOR_BGR2GRAY)
        gray_j = numpy.float32(gray_j)
        dst_j = cv2.cornerHarris(gray_j,2,3,0.025)
        dst_j = cv2.dilate(dst_j,None)
        # Threshold for an optimal value, it may vary depending on the image.
        temp_j[dst_j<0.01*dst_j.max()]=[0,0,0]
        temp_j[dst_j>=0.01*dst_j.max()]=[255,255,255]
        temp1_j[dst_j>0.01*dst_j.max()]=[0,0,255]
        hist_j = cv2.calcHist([temp_j], [0], None, [256], [0, 256])

        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_CORREL)
        self.assertGreater(self.measure, self.threshold)
        print self.measure
        cv2.imshow('Input X',temp1_i)
        cv2.waitKey(0)
        cv2.imshow('Input Y',temp1_j)
        cv2.waitKey(0)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def Canny_edge(self):
        self.threshold = .999999999999999        
        gray_i = cv2.cvtColor(self.image_i, cv2.COLOR_BGR2GRAY)
        edges_i = cv2.Canny(gray_i,100,200)
        gray_j = cv2.cvtColor(self.image_j, cv2.COLOR_BGR2GRAY)
        edges_j = cv2.Canny(gray_j,100,200)

        hist_i = cv2.calcHist([edges_i], [0], None, [256], [0, 256])
        hist_j = cv2.calcHist([edges_j], [0], None, [256], [0, 256])

        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_CORREL)
        self.assertGreater(self.measure, self.threshold)
        print self.measure
#        cv2.imshow(self.image_i)
#        cv2.imshow(self.image_j)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def gray_histogram_cmp_corr(self):
        self.threshold = .9

        gray_i = cv2.cvtColor(self.image_i, cv2.COLOR_BGR2GRAY)
        hist_i = cv2.calcHist([gray_i], [0], None, [256], [0, 256])

        gray_j = cv2.cvtColor(self.image_j, cv2.COLOR_BGR2GRAY)
        hist_j = cv2.calcHist([gray_j], [0], None, [256], [0, 256])

        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_CORREL)
        self.assertGreater(self.measure, self.threshold)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def gray_histogram_cmp_bhatta(self):
        self.threshold = .07

        gray_i = cv2.cvtColor(self.image_i, cv2.COLOR_BGR2GRAY)
        hist_i = cv2.calcHist([gray_i], [0], None, [256], [1, 256])

        gray_j = cv2.cvtColor(self.image_j, cv2.COLOR_BGR2GRAY)
        hist_j = cv2.calcHist([gray_j], [0], None, [256], [1, 256])

        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_BHATTACHARYYA)
        self.assertGreater(self.measure, self.threshold)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def Harris_Corner(self):
        self.threshold = 0.999999999999
        temp_i = self.image_i.copy()
        temp1_i = self.image_i.copy()
        gray_i = cv2.cvtColor(temp_i, cv2.COLOR_BGR2GRAY)
        gray_i = numpy.float32(gray_i)
        dst_i = cv2.cornerHarris(gray_i,2,3,0.025)
        dst_i = cv2.dilate(dst_i,None)
        # Threshold for an optimal value, it may vary depending on the image.
        temp_i[dst_i<0.01*dst_i.max()]=[0,0,0]
        temp1_i[dst_i>0.01*dst_i.max()]=[0,0,255]
        hist_i = cv2.calcHist([temp_i], [0], None, [256], [0, 256])
        temp_j = self.image_j.copy()
        temp1_j = self.image_j.copy()
        gray_j = cv2.cvtColor(temp_j, cv2.COLOR_BGR2GRAY)
        gray_j = numpy.float32(gray_j)
        dst_j = cv2.cornerHarris(gray_j,2,3,0.025)
        dst_j = cv2.dilate(dst_j,None)
        # Threshold for an optimal value, it may vary depending on the image.
        temp_j[dst_j<0.01*dst_j.max()]=[0,0,0]
        temp1_j[dst_j>0.01*dst_j.max()]=[0,0,255]
        hist_j = cv2.calcHist([temp_j], [0], None, [256], [0, 256])


        self.measure = cv2.compareHist(hist_i, hist_j, cv.CV_COMP_CORREL)
        self.assertGreater(self.measure, self.threshold)
项目:test-automation    作者:openstax    | 项目源码 | 文件源码
def rgb_histogram(self):
        self.threshold = 0.999999999999999
        hist_i = cv2.calcHist([self.image_i], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])

        hist_j = cv2.calcHist([self.image_j], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])

        hist_flatten_i = hist_i.flatten()
        hist_flatten_j = hist_j.flatten()

        self.measure = cv2.compareHist(hist_flatten_i, hist_flatten_j, cv.CV_COMP_CORREL)

        self.assertGreater(self.measure, self.threshold)
项目:smart-cam    作者:smart-cam    | 项目源码 | 文件源码
def __get_roi_hist(self, faces_rects, frame):
        faces_roi_hists = []
        for (x, y, w, h) in faces_rects:
            roi = frame[y:y+h, x:x+w]
            hsv_roi = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
            mask = cv2.inRange(hsv_roi, np.array((0., 60.,32.)), np.array((180.,255.,255.)))
            roi_hist = cv2.calcHist([hsv_roi],[0], mask, [180], [0,180])
            roi_hist = cv2.normalize(roi_hist,roi_hist, 0, 255, cv2.NORM_MINMAX)
            faces_roi_hists.append(roi_hist)
        return faces_roi_hists
项目:pyImageClassification    作者:tyiannak    | 项目源码 | 文件源码
def getLBP(img):
    img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    radius = 1
    n_points = 8 * radius
    lbpImage = (local_binary_pattern(img2, n_points, radius)).astype(int)**(1.0/radius)

    # block processing:
    lbpImages = block_view(lbpImage, ( int(lbpImage.shape[0] / 2), int(lbpImage.shape[1] / 4)))


    count = 0

    LBP = np.array([]); 
    for i in range(lbpImages.shape[0]):         # for each block:
        for j in range(lbpImages.shape[1]):
            count += 1
#           plt.subplot(4,2,count)
#           plt.imshow(lbpImages[i,j,:,:],cmap = cm.Greys_r)
#           plt.subplot(4,2,count+4*2/2)
#           print count*2+1
            LBPt = cv2.calcHist([lbpImages[i,j,:,:].astype('uint8')], [0], None, [8], [0, 256]) 
            LBP = np.append(LBP, LBPt[:,0]);
#           plt.plot(LBPt)
#   plt.show()


    Fnames = ["LBP"+str(i).zfill(2) for i in range(len(LBP))]

    return normalize(LBP).tolist(), Fnames
项目:cbpt    作者:egrinstein    | 项目源码 | 文件源码
def calc_hist(image):


    mask = cv2.inRange(image, np.array((0., 60.,32.)), np.array((180.,255.,255.)))
    hist = cv2.calcHist([image],[0],mask,[180],[0,180])
    #hist = cv2.calcHist(image,[0,1],None,[10,10],[0,180,0,255])
    cv2.normalize(hist,hist,0,1,norm_type=cv2.NORM_MINMAX)
    return hist
项目:QScode    作者:PierreHao    | 项目源码 | 文件源码
def histogram(self, image, mask=None):
        #Extract a 3D color histogram from the masked region of the image, using
        #the supplied number of bins per channel, then normalize the histogram
        new_im = imcrop(image)
        hist = cv2.calcHist([new_im], [0, 1, 2], mask, self.bins,[0, 256, 0, 256, 0, 256])
        hist = cv2.normalize(hist).flatten()
        return hist
项目:VisionTest    作者:SamCB    | 项目源码 | 文件源码
def get_histogram(image, histogram_scale):
    h = cv2.calcHist([image], [0], None, [histogram_scale], [0, 256]).flatten()
    return h/256