import cvSpace import cv2 print "HOla" baseImage = cv2.imread('testMask.png',0) contornos = cvSpace.getContours(baseImage) print "NContornos "+str(len(contornos)) height, width = baseImage.shape index = 8 print contornos[index] maskContour = cvSpace.getMaskFromContour(contornos[index], width, height) masquerade = cvSpace.maskImage(baseImage, maskContour) cv2.imshow('imageMask',masquerade) cv2.imshow('imageContour',maskContour) cv2.imshow('baseImage',baseImage) print cvSpace.getGalaxyCenter(masquerade) cv2.waitKey(0) #cv2.destroyAllWindows()
def updateImage(self, scaleFactor=1): print "[AstroImage::updateImage] self.scaleFactor: "+str(self.scaleFactor) self.imagePil = Image.fromarray(self.imageCV) self.imageTK = ImageTk.PhotoImage(image=self.imagePil) self.histogram = self.updateHistogram() (self.staMean, self.staStd) = cv2.meanStdDev(self.imageCV) self.staMean = self.staMean[0][0] self.staStd = self.staStd[0][0] print ">>>>>>>>>>Mean>>> "+str(self.staMean) print ">>>>>>>>>>Std>>>> "+str(self.staStd) print "[AstroImage::updateImage] calling to cvSpace.getContours" #################################OBTENCION#################################### ############################## getContours ################################### #################### obtencion de candidatos contornos ####################### blackMedian, nIter = cvSpace.sky_median_sig_clip(self.imageCVOriginal, 5, 0.1, max_iter=20) self.darkImage = self.generateDarkImage(blackMedian) print "Linea de Espacio Vacio: "+str(blackMedian) self.nContours, self.contourMeanArea = cvSpace.getContours(cv2.convertScaleAbs(self.darkImage)) self.nContours = cvSpace.removeContourInsideContour(self.nContours) print "[AstroImage::updateImage] calling to cvSpace.getObjectList" #################################OBTENCION#################################### ###############################getObjectList################################## ################# obtencion de candidatos ptos Luminosos ##################### temp8bit = cv2.convertScaleAbs(self.imageCV) self.peakThreshold, self.lCandidates, self.peakCVImage, self.starCandidates = cvSpace.getObjectList(temp8bit, self.darkImage)#, debug = True)#self.imageCV) self.thumbPeak = ImageTk.PhotoImage(Image.fromarray(cv2.resize(self.peakCVImage, (100, 100)))) print "[AstroImage::updateImage] Preparing vector canvas" #########################DRAW INTEREST POINTS AND CONTOURS#################### #self.contourImage = cv2.cvtColor(cv2.convertScaleAbs(self.darkImage).copy(), cv2.COLOR_GRAY2RGB) self.contourImage = cv2.cvtColor(cv2.convertScaleAbs(self.imageCV).copy(), cv2.COLOR_GRAY2RGBA) print "\n\n-------------------------"+str(len(self.lCandidates))+"---------------------------\n" for k in self.lCandidates: if k[3] == 0:#Estimated Galaxi point cv2.circle(self.contourImage, (int(k[0]),int(k[1])), k[2], (255,0,0,255),-1) if k[3] == 1:#Extimated Star or galaxy point cv2.circle(self.contourImage, (int(k[0]),int(k[1])), k[2], (0,255,0,250),-1) if k[3] == 0:#Start Point cv2.circle(self.contourImage, (int(k[0]),int(k[1])), k[2], (255,0,0,250),-1) index = 0 self.galaxiCenters = np.array([[-1,-1]]) print "[AstroImage::updateImage] Rasterizing vector data from contours" for c in self.nContours: cR = np.random.randint(0,255) cB = np.random.randint(100,255) cG = np.random.randint(150,255) color = (cR, cB, cG, 255) cv2.drawContours(self.contourImage, self.nContours, index, color, 3) height, width = self.imageCV.shape tempMaks = cvSpace.getMaskFromContour(c, width, height) tempIMG = cvSpace.maskImage(self.imageCV, tempMaks) tempCenter = cvSpace.getGalaxyCenter(tempIMG) cv2.rectangle(self.contourImage, (tempCenter[0]-5,tempCenter[1]-5), (tempCenter[0]+5,tempCenter[1]+5), (255,215,0,255), -1) cv2.rectangle(self.contourImage, (tempCenter[0]-5,tempCenter[1]-5), (tempCenter[0]+5,tempCenter[1]+5), (0,0,0,255)) #print "_______________________________________________________" #print "Centro de la galaxia: "+str(tempCenter[0])+", "+str(tempCenter[1]) #print "_______________________________________________________" self.galaxiCenters = np.append( self.galaxiCenters, [[tempCenter[0],tempCenter[0]]], axis=0 ) index = index + 1 self.galaxiCenters = np.delete(self.galaxiCenters, 0, axis = 0) print "Number of contours: "+str(len(self.nContours))+" vs "+str(len(self.galaxiCenters))+" ##############"