Skip to content

Commit 5fe6e89

Browse files
committed
Added blimp size threshold and some fancy display options
1 parent 3438fa5 commit 5fe6e89

File tree

1 file changed

+34
-13
lines changed

1 file changed

+34
-13
lines changed

BlimpDetect-8-28_JB.py

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,10 @@ def getthresholdedimg(im):
173173

174174
return imgthreshold
175175
#---------------------------------------------------------
176-
#img is an image (passed in by reference I'm pretty sure)
176+
#img is an image (passed in by reference)
177177
#sideName is for output printing purposes
178178
#this returns an x and y coordinate of the blimp (x = col, y = row)
179-
def procImg(img,sideName):
179+
def procImg(img,sideName,dispFlag):
180180

181181
#creates empty images of the same size
182182
imdraw = cv.CreateImage(cv.GetSize(img), 8, 3)
@@ -188,7 +188,7 @@ def procImg(img,sideName):
188188
imgbluethresh = getthresholdedimg(imgSmooth) #Get a color thresholed binary image
189189
cv.Erode(imgbluethresh, imgbluethresh, None, 3)
190190
cv.Dilate(imgbluethresh, imgbluethresh, None, 10)
191-
img2 = cv.CloneImage(imgbluethresh)
191+
#img2 = cv.CloneImage(imgbluethresh)
192192
storage = cv.CreateMemStorage(0)
193193
contour = cv.FindContours(imgbluethresh, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE)
194194

@@ -205,7 +205,11 @@ def procImg(img,sideName):
205205

206206
#get the largest contour
207207
area = bound_rect[2]*bound_rect[3];
208-
if area > prevArea:
208+
209+
if dispFlag:
210+
print("Area= " + str(area))
211+
212+
if (area > prevArea and area > 2000):
209213
pt1 = (bound_rect[0], bound_rect[1])
210214
pt2 = (bound_rect[0] + bound_rect[2], bound_rect[1] + bound_rect[3])
211215

@@ -224,6 +228,17 @@ def procImg(img,sideName):
224228

225229
print("")
226230

231+
if dispFlag:
232+
small_thresh = cv.CreateImage((int(0.25*cv.GetSize(imgbluethresh)[0]), int(0.25*cv.GetSize(imgbluethresh)[1])), 8, 1)
233+
cv.Resize(imgbluethresh, small_thresh)
234+
cv.ShowImage(sideName + "_threshold", small_thresh)
235+
cv.WaitKey(100)
236+
237+
small_hsv = cv.CreateImage((int(0.25*cv.GetSize(imghsv)[0]), int(0.25*cv.GetSize(imghsv)[1])), 8, 3)
238+
cv.Resize(imghsv, small_hsv)
239+
cv.ShowImage(sideName + "_hsv", small_hsv)
240+
cv.WaitKey(100)
241+
227242
return (centroidx, centroidy)
228243

229244

@@ -242,6 +257,15 @@ def procImg(img,sideName):
242257
cv.NamedWindow("west",cv.CV_WINDOW_AUTOSIZE)
243258
cv.NamedWindow("east",cv.CV_WINDOW_AUTOSIZE)
244259

260+
# extra images to show intermediate tracking results
261+
dispMore = 0
262+
if dispMore:
263+
cv.NamedWindow("west_threshold",cv.CV_WINDOW_AUTOSIZE)
264+
cv.NamedWindow("east_threshold",cv.CV_WINDOW_AUTOSIZE)
265+
cv.NamedWindow("west_hsv",cv.CV_WINDOW_AUTOSIZE)
266+
cv.NamedWindow("east_hsv",cv.CV_WINDOW_AUTOSIZE)
267+
268+
245269
#address of the control server
246270
ip = "md-red5.discovery.wisc.edu"
247271
port = 7779
@@ -260,22 +284,19 @@ def procImg(img,sideName):
260284
frame_west = cv.LoadImageM(fname_west,cv.CV_LOAD_IMAGE_COLOR);
261285
frame_east = cv.LoadImageM(fname_east,cv.CV_LOAD_IMAGE_COLOR);
262286

263-
#small_west
264-
#small_east =
265-
266-
#find the blimp with one camera
267-
centroids = procImg(frame_west,"west")
287+
#find the blimp with one camera, frame is passed in by reference
288+
centroids = procImg(frame_west,"west",dispMore)
268289
centx_west = centroids[0]
269290
centy_west = centroids[1]
270291

271-
#find the blimp with one camera
272-
centroids = procImg(frame_east,"east")
292+
#find the blimp with one camera, frame is passed in by reference
293+
centroids = procImg(frame_east,"east",dispMore)
273294
centx_east = centroids[0]
274295
centy_east = centroids[1]
275296

276297
#decimate the resulting images
277-
small_west = cv.CreateImage((int(0.5*cv.GetSize(frame_west)[0]), int(0.5*cv.GetSize(frame_west)[1])), 8, 3)
278-
small_east = cv.CreateImage((int(0.5*cv.GetSize(frame_east)[0]), int(0.5*cv.GetSize(frame_east)[1])), 8, 3)
298+
small_west = cv.CreateImage((int(0.25*cv.GetSize(frame_west)[0]), int(0.25*cv.GetSize(frame_west)[1])), 8, 3)
299+
small_east = cv.CreateImage((int(0.25*cv.GetSize(frame_east)[0]), int(0.25*cv.GetSize(frame_east)[1])), 8, 3)
279300
cv.Resize(frame_west, small_west)
280301
cv.Resize(frame_east, small_east)
281302

0 commit comments

Comments
 (0)