def _onChange(self): import humanmodifier if self.slider.isSliderDown(): # Don't do anything when slider is being clicked or dragged (onRelease triggers it) return value = self.getValue() human = self.modifier.human if self.value is None: self.value = self.modifier.getValue() action = humanmodifier.ModifierAction(self.modifier, self.value, value, self.update) if self.value != value: G.app.do(action) else: # Apply the change anyway, to make sure everything's updated # Perform the action without adding it to the undo stack action.do() if human.isSubdivided(): if human.isProxied(): human.getProxyMesh().setVisibility(0) else: human.getSeedMesh().setVisibility(0) human.getSubdivisionMesh(False).setVisibility(1) self.value = None
def _onChange(self): import humanmodifier if self.slider.isSliderDown(): # Don't do anything when slider is being clicked or dragged (onRelease triggers it) return value = self.getValue() human = self.modifier.human if self.value is None: self.value = self.modifier.getValue() if self.value != value: G.app.do(humanmodifier.ModifierAction(self.modifier, self.value, value, self.update)) else: # Indicate that onChanging event is ended with onChanged event (type == 'modifier', not 'targets') import events3d event = events3d.HumanEvent(human, self.modifier.eventType) event.modifier = self.modifier.fullName human.callEvent('onChanged', event) if human.isSubdivided(): if human.isProxied(): human.getProxyMesh().setVisibility(0) else: human.getSeedMesh().setVisibility(0) human.getSubdivisionMesh(False).setVisibility(1) self.value = None
def onClicked(event): #img=cv2.imread('/home/smith/PycharmProjects/AutoMakeHuman/src/7_auto_human_body/data/MyAutoData/picture.png') #cv2.imshow("img", img) #cv2.waitKey(0) slider = self.sliders[0] slider.modifier.setValue(1) sli = modifierslider.ModifierSlider(slider.modifier) value = slider.modifier.getValue() valuesli = sli.getValue() # sli.onChanging(slider.modifier.getValue()) action = humanmodifier.ModifierAction(slider.modifier, value, valuesli, sli.update) G.app.do(action)
def resetValue(self): """ Reset value of slider to default. """ # Right clicking reset the slider to default position if self.modifier.getValue() == self.modifier.getDefaultValue(): return False # Reset slider to default action import humanmodifier G.app.do(humanmodifier.ModifierAction(self.modifier, self.modifier.getValue(), None, # Reset self.update))
def _handleMousePress(self, event): if event.button() == gui.QtCore.Qt.RightButton: # Right clicking reset the slider to default position if self.modifier.getValue() == self.modifier.getDefaultValue(): return False # Reset slider to default action import humanmodifier G.app.do(humanmodifier.ModifierAction(self.modifier, self.modifier.getValue(), self.modifier.getDefaultValue(), self.update)) return False else: # Default behaviour return True
def onClicked(event): log.message('start...') for slider in self.sliders: for valuenum in range(0, 105, 5): valuenums = valuenum / 100.000000 slider.update() # log.message(slider.modifier.getValue()) # if slider.enabledCondition: # log.message(slider) slider.modifier.setValue(valuenums) # log.message(slider.modifier.getValue()) sli = modifierslider.ModifierSlider(slider.modifier) value = slider.modifier.getValue() valuesli = sli.getValue() # sli.onChanging(slider.modifier.getValue()) action = humanmodifier.ModifierAction(slider.modifier, value, valuesli, sli.update) log.message(str(valuesli)) log.message(str(value)) if valuesli != value: G.app.do(action) else: action.do() filenameImage = fileAotupicture + '/' + str(time.strftime("%Y-%m-%d_%H.%M.%S")) + '.png' filenameIma = fileAotupicture + '/' + str(time.strftime("%Y-%m-%d_%H.%M.%S")) + '.png' filenameIma1 = fileAotupicture + '/result' + str(time.strftime("%Y-%m-%d_%H.%M.%S")), '.png' width = G.windowWidth; height = G.windowHeight; width1 = width - 3; height1 = height - 3; # log.message(filenameImage) mh.grabScreen(0, 0, width, height, filenameImage) img = cv2.imread(filenameImage) height1, width1 = img.shape[:2] # print height,width for i in range(height1): for j in range(width1): r, b, g = img[i][j] rb = abs(r - b) rg = abs(r - g) bg = abs(b - g) if rb < 10 and rg < 10 and bg < 10: img[i][j] = [0, 0, 0] else: img[i][j] = [255, 255, 255] imsave = normalize.Normalize(img) cv2.imwrite(filenameIma, imsave) # cv2.imshow("img",imsave) # cv2.waitKey(10) delt = onpicture() log.message(str(delt)) if delt <= deltvalue[0]: deltvalue[0] = delt deltva[0] = valuenums num = deltva[0] * 20 + 1 result = cv2.imread(fileResult + str(num) + '.png') cv2.imshow("Result", result) cv2.waitKey(0) log.message(deltvalue) log.message(num) slider.modifier.setValue(valuenums) # log.message(slider.modifier.getValue()) sli = modifierslider.ModifierSlider(slider.modifier) value = slider.modifier.getValue() valuesli = sli.getValue() # sli.onChanging(slider.modifier.getValue()) action = humanmodifier.ModifierAction(slider.modifier, value, valuesli, sli.update) G.app.do(action) mh.grabScreen(0, 0, width, height, filenameImage) imgw = cv2.imread(filenameImage) height1, width1 = imgw.shape[:2] # print height,width for i in range(height1): for j in range(width1): r, b, g = imgw[i][j] rb = abs(r - b) rg = abs(r - g) bg = abs(b - g) if rb < 10 and rg < 10 and bg < 10: imgw[i][j] = [0, 0, 0] else: imgw[i][j] = [255, 255, 255] imsavew = normalize.Normalize(imgw) cv2.imwrite(filenameIma1, imsavew)
def worker(sliders, stopSearch): log.message('start...') for slider in sliders: if (stopSearch): stopSearch = False break value = 0 for valuenum in range(0, 101, 1): if (stopSearch): stopSearch = False break valuenums = valuenum / 100.000000 slider.update() slider.modifier.setValue(valuenums) log.message('slider modifiy value:' + str(valuenums)) sli = modifierslider.ModifierSlider(slider.modifier) # value = slider.modifier.getValue() valuesli = sli.getValue() # #sli.onChanging(slider.modifier.getValue()) action = humanmodifier.ModifierAction( slider.modifier, value, valuesli, sli.update) log.message('before value:' + str(value)) # 以下更新场景代码均无效 if valuesli != value: G.app.do(action) else: action.do() #gui3d.app.do(action) #G.app.do(action) #G.app.redraw() log.message('update views') value = valuesli filenameImage = fileAotupicture + '/' + str( time.strftime("%Y-%m-%d_%H.%M.%S")) + '.png' filenameIma = fileAotupicture + '/' + str( time.strftime("%Y-%m-%d_%H.%M.%S")) + '.png' filenameIma1 = fileAotupicture + '/result' + str( time.strftime("%Y-%m-%d_%H.%M.%S")), '.png' width = G.windowWidth height = G.windowHeight width1 = width - 3 height1 = height - 3 log.message('grab screen') mh.grabScreen(0, 0, width, height, filenameImage) img = cv2.imread(filenameImage) height1, width1 = img.shape[:2] # print height,width for i in range(height1): for j in range(width1): r, b, g = img[i][j] rb = abs(r - b) rg = abs(r - g) bg = abs(b - g) if rb < 10 and rg < 10 and bg < 10: img[i][j] = [0, 0, 0] else: img[i][j] = [255, 255, 255] imsave = normalize.Normalize(img) log.message('show normalize image') try: log.message('cv2 start') cv2.imwrite(filenameIma, imsave) # log.message('cv2 imwrite:'+filenameIma) # newimg=cv2.imread(filenameIma) # log.message('cv2 imread') # cv2.imshow("img", imsave) # log.message('cv2 imshow') ## 60与电脑的刷新频率有关,如果<60刷新频率跟不上,则不会显示图像 # cv2.waitKey(60) # cv2.destroyAllWindows() # delt = onpicture() imnew = cv2.imread(filepicture) delt = findcontours.GetDeltValue(imsave, imnew) log.message('delt value:' + str(delt)) if delt <= deltvalue[0]: deltvalue[0] = delt deltva[0] = valuenums except Exception, e: log.message(e) num = deltva[0] * 20 + 1 # result = cv2.imread(fileResult + str(num) + '.png') # cv2.imshow("Result", result) # cv2.waitKey(0) log.message(deltvalue) log.message(num)
def __init__(self, category, name, label=None, saveName=None, cameraView=None): if label is None: label = name.capitalize() if saveName is None: saveName = name super(Modifier1TaskView, self).__init__(category, name, label=label) self.saveName = saveName self.cameraFunc = _getCamFunc(cameraView) self.groupBoxes = OrderedDict() self.radioButtons = [] self.sliders = [] self.modifiers = {} self.categoryBox = self.addRightWidget(gui.GroupBox('Category')) self.groupBox = self.addLeftWidget(gui.StackedBox()) self.showMacroStats = False self.human = gui3d.app.selectedHuman a = [0] deltvalue = [100] deltva = [0] box = self.addLeftWidget(gui.GroupBox(u'体型自动化')) self.aButton = box.addWidget(gui.Button(u'体型搜索')) self.bButton = box.addWidget(gui.Button(u'Test')) @self.bButton.mhEvent def onClicked(event): #img=cv2.imread('/home/smith/PycharmProjects/AutoMakeHuman/src/7_auto_human_body/data/MyAutoData/picture.png') #cv2.imshow("img", img) #cv2.waitKey(0) slider = self.sliders[0] slider.modifier.setValue(1) sli = modifierslider.ModifierSlider(slider.modifier) value = slider.modifier.getValue() valuesli = sli.getValue() # sli.onChanging(slider.modifier.getValue()) action = humanmodifier.ModifierAction(slider.modifier, value, valuesli, sli.update) G.app.do(action) def worker(sliders, stopSearch): log.message('start...') for slider in sliders: if (stopSearch): stopSearch = False break value = 0 for valuenum in range(0, 101, 1): if (stopSearch): stopSearch = False break valuenums = valuenum / 100.000000 slider.update() slider.modifier.setValue(valuenums) log.message('slider modifiy value:' + str(valuenums)) sli = modifierslider.ModifierSlider(slider.modifier) # value = slider.modifier.getValue() valuesli = sli.getValue() # #sli.onChanging(slider.modifier.getValue()) action = humanmodifier.ModifierAction( slider.modifier, value, valuesli, sli.update) log.message('before value:' + str(value)) # 以下更新场景代码均无效 if valuesli != value: G.app.do(action) else: action.do() #gui3d.app.do(action) #G.app.do(action) #G.app.redraw() log.message('update views') value = valuesli filenameImage = fileAotupicture + '/' + str( time.strftime("%Y-%m-%d_%H.%M.%S")) + '.png' filenameIma = fileAotupicture + '/' + str( time.strftime("%Y-%m-%d_%H.%M.%S")) + '.png' filenameIma1 = fileAotupicture + '/result' + str( time.strftime("%Y-%m-%d_%H.%M.%S")), '.png' width = G.windowWidth height = G.windowHeight width1 = width - 3 height1 = height - 3 log.message('grab screen') mh.grabScreen(0, 0, width, height, filenameImage) img = cv2.imread(filenameImage) height1, width1 = img.shape[:2] # print height,width for i in range(height1): for j in range(width1): r, b, g = img[i][j] rb = abs(r - b) rg = abs(r - g) bg = abs(b - g) if rb < 10 and rg < 10 and bg < 10: img[i][j] = [0, 0, 0] else: img[i][j] = [255, 255, 255] imsave = normalize.Normalize(img) log.message('show normalize image') try: log.message('cv2 start') cv2.imwrite(filenameIma, imsave) # log.message('cv2 imwrite:'+filenameIma) # newimg=cv2.imread(filenameIma) # log.message('cv2 imread') # cv2.imshow("img", imsave) # log.message('cv2 imshow') ## 60与电脑的刷新频率有关,如果<60刷新频率跟不上,则不会显示图像 # cv2.waitKey(60) # cv2.destroyAllWindows() # delt = onpicture() imnew = cv2.imread(filepicture) delt = findcontours.GetDeltValue(imsave, imnew) log.message('delt value:' + str(delt)) if delt <= deltvalue[0]: deltvalue[0] = delt deltva[0] = valuenums except Exception, e: log.message(e) num = deltva[0] * 20 + 1 # result = cv2.imread(fileResult + str(num) + '.png') # cv2.imshow("Result", result) # cv2.waitKey(0) log.message(deltvalue) log.message(num) slider.modifier.setValue(valuenums) # log.message(slider.modifier.getValue()) sli = modifierslider.ModifierSlider(slider.modifier) value = slider.modifier.getValue() valuesli = sli.getValue() # sli.onChanging(slider.modifier.getValue()) action = humanmodifier.ModifierAction(slider.modifier, value, valuesli, sli.update) G.app.do(action) mh.grabScreen(0, 0, width, height, filenameImage) imgw = cv2.imread(filenameImage) height1, width1 = imgw.shape[:2] # print height,width for i in range(height1): for j in range(width1): r, b, g = imgw[i][j] rb = abs(r - b) rg = abs(r - g) bg = abs(b - g) if rb < 10 and rg < 10 and bg < 10: imgw[i][j] = [0, 0, 0] else: imgw[i][j] = [255, 255, 255] imsavew = normalize.Normalize(imgw) cv2.imwrite(filenameIma1, imsavew) # sli.resetValue() # syncSliders() # slider.modifier.human # enabled = getattr(slider.modifier.human, slider.enabledCondition)() # slider.setEnabled(str(2)) # log.message(str(enabled)) return