createTrackbar

import cv2
import numpy as np
#载入图片
#img_original=cv2.imread('1110_3_1_X_537_Y_1700_qly_100_fail_13d17h46m24s.bmp',0)
img_original=cv2.imread('1141_1_1_X_551_Y_1701_qly_100_pass_subtpl_25_update_1153677968_13d17h53m10s.bmp',0)
h,w=img_original.shape
= cv2.resize img_original (img_original, (W. 3 *, H *. 3))
rangecolorimg img_original.copy = ()
# setting window
cv2.namedWindow ( 'the Canny')
cv2.namedWindow ( 'morphed')
cv2.namedWindow ( 'colorRange ')
# define callback
DEF Nothing (X):
    Pass
# Create two sliders, each control thresholdl, threshold2
cv2.createTrackbar (' thresholdl ',' the Canny ', 50,100, Nothing)
cv2.createTrackbar (' threshold2 ',' the Canny ', 100,100, Nothing)
cv2.createTrackbar (' Morph ',' morphed ', 5,20, Nothing)
cv2.createTrackbar (' Range1 ',' colorRange ', 0,255, Nothing)
cv2.createTrackbar (' Range2 ',' colorRange ', 100,255, Nothing)
cv2.createTrackbar (' replaceValue ', 'colorRange',120,255,nothing)
while(1):
    #返回滑动条所在位置的值
    rangecolorimg=img_original.copy()
    blackcolorimg=img_original.copy()
    threshold1=cv2.getTrackbarPos('threshold1','Canny')
    threshold2=cv2.getTrackbarPos('threshold2','Canny')
    range1=cv2.getTrackbarPos('range1','colorRange')
    range2=cv2.getTrackbarPos('range2','colorRange')
    replacevalue=cv2.getTrackbarPos('replacevalue','colorRange')
    maskrange=np.zeros_like(img_original)
    blackrange=np.ones_like(img_original)*255
    x1=img_original[img_original>range1]
    x2=img_original[img_original<range2]
    #x3=(img_original>range1)&(img_original<range2)
    x3 = cv2.inRange(img_original, range1, range2)
    import pdb
    #pdb.set_trace()
    #x3=cv2.bitwise_and(x1, x2)
    #bitwise_and
    #rangecolorimg[x3]=255
   
    rangecolorimg[x3!=0]=replacevalue
    blackmask = 255 * np.ones(rangecolorimg.shape, rangecolorimg.dtype)
    #blackmask=src_mask
    width, height = img_original.shape
    center = (int(height/2), int(width/2))
    seamlessCloneimg=rangecolorimg
    #seamlessCloneimg = cv2.inpaint(seamlessCloneimg, x3, 10, cv2.INPAINT_NS)#cv2.INPAINT_NScv2.INPAINT_TELEA
   
    seamlessCloneimg = cv2.seamlessClone(cv2.cvtColor(img_original, cv2.COLOR_GRAY2BGR) ,cv2.cvtColor(rangecolorimg, cv2.COLOR_GRAY2BGR) , blackmask, center, cv2.MIXED_CLONE)   
    blackrange[x3!=0]=blackcolorimg[x3!=0]
    normalizeimg = np.zeros(blackrange.shape, dtype=np.float32)
    cv2.normalize(np.float32(rangecolorimg), dst=normalizeimg, alpha=1.0, beta=0, norm_type=cv2.NORM_MINMAX)   
    #Canny边缘检测
    img_edges=cv2.Canny(img_original,threshold1,threshold2)
    #显示图片
    img=img_edges
    morphradius=cv2.getTrackbarPos('morph','morphed')
    kernel   = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (morphradius,morphradius))
    morphed  = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
    contours,_ = cv2.findContours(morphed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    import pdb
    #pdb.set_trace()
    rgbmorphed=cv2.cvtColor(morphed, cv2.COLOR_GRAY2BGR)   
    # for i in range(len(contours)):
        # #cv2.drawContours(immask,[contours[i]],-1,(x+np.random.randint(0, 30),x+np.random.randint(0, 30),x+np.random.randint(0, 30)),cv2.FILLED)
        # cv2.drawContours(rgbmorphed,[contours[i]],-1,(0,255,0),cv2.FILLED)
    cv2.drawContours(rgbmorphed,contours,-1,(255,255,255),cv2.FILLED)       
    import pdb
    #pdb.set_trace()
    if(0):
        cv2.imshow("morphed2",morphed)
        cv2.imshow("morphed",morphed)
        cv2.imshow('Canny',img_edges)
        cv2.imshow('rgbmorphed',rgbmorphed)
    #cv2.waitKey(0)   
    cv2.imshow("colorRange",rangecolorimg)
    cv2.imshow("x3",x3)
   
    cv2.imshow("blackrange",blackrange)   
    cv2.imshow('normalizeimg',np.uint8(normalizeimg*255))
    #cv2.waitKey(0)    
   
    cv2.imshow('original',img_original)
   
    cv2.imshow('seamlessCloneimg',seamlessCloneimg)    
    if cv2.waitKey(1)==ord('q'):
        break
cv2.destroyAllWindows()
 

Guess you like

Origin www.cnblogs.com/skydaddy/p/11698362.html