示例#1
0
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()
示例#2
0
	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))+" ##############"