is it possible to adjust convex hull to draw blue line instead of green line?

meInvent bbird jobmattcon at gmail.com
Sat Sep 17 02:48:50 EDT 2016


On Saturday, September 17, 2016 at 2:31:59 PM UTC+8, meInvent bbird wrote:
> On Saturday, September 17, 2016 at 9:35:35 AM UTC+8, Steve D'Aprano wrote:
> > On Sat, 17 Sep 2016 10:20 am, meInvent bbird wrote:
> > 
> > > i succeed to use code to draw green line, but green line not draw the
> > > large area, expect second uploaded picture, the blue line connect
> > > the bottom of red line graph
> > 
> > 
> > Please don't waste our time with dead code that has been commented out or
> > that doesn't do anything.
> > 
> > Here is your code with the commented out dead code removed. You should do
> > this, don't expect us to do it:
> > 
> > 
> > im = img.copy()
> > cntcounter = 0
> > for cnt in contours:
> >             print("approx=" + str(approx))
> >             cntcounter = cntcounter + 1
> >             print("here1")
> >             hull = cv2.convexHull(cnt,returnPoints = True)
> >             print("here2")
> >             while im is None:
> >                 # WARNING: THIS IS AN INFINITE LOOP
> >                 time.sleep(1)
> >             if im is not None:                
> >                 print("here3")
> >                 previousx = 0
> >                 previousy = 0         
> >                 for c in hull: 
> >                     if (previousx != 0 and previousy != 0 and c[0][0] != 0
> >                         and c[0][1] != 0 and abs(previousy - c[0][1]) > 10
> >                         and abs(c[0][0] - previousx) > 1
> >                         ):
> >                         while im is None:
> >                             # WARNING: THIS IS AN INFINITE LOOP
> >                             time.sleep(1)
> >                         cv2.line(im, (previousx, previousy),
> >                                  (c[0][0], c[0][1]), (0, 255, 0), 2)
> >                         print("")
> >                     previousx = c[0][0]
> >                     previousy = c[0][1]
> > 
> > 
> > 
> > 
> > Now it is much easier to read without the noise.
> > 
> > Problems:
> > 
> > (1) img is not defined;
> > 
> > (2) approx is not defined;
> > 
> > (3) contours is not defined;
> > 
> > (4) cv2 is not defined;
> > 
> > (5) you have TWO possible infinite loops in your code;
> > 
> > (6) time is not defined, but this at least I can guess is the 
> >     standard time module;
> > 
> > (7) c is not defined.
> > 
> > 
> > As given to us, we cannot run your code or understand it, because too many
> > things are undefined.
> > 
> > My **guess** is that cv2.line() will take an argument to set the line
> > colour. You should read the documentation for cv2.line().
> > 
> > 
> > Before asking any more questions, please read this:
> > 
> > http://sscce.org/
> > 
> > 
> > 
> > 
> > 
> > 
> > -- 
> > Steve
> > “Cheer up,” they said, “things could be worse.” So I cheered up, and sure
> > enough, things got worse.
> 
> sorry for assuming all have experience in this kind of application
> 
> here is my code
> 
> https://gist.github.com/hoyeunglee/0165b24b10de0baf8538e8866e2dcd60
> 
> Please.


this time, i try to run more times for contour and convex hull

but not blue line expected diagram,

is it possible to adjust the method to draw lines for the bottom of red line

https://gist.github.com/hoyeunglee/9c97fdef1cc32fefde0a454a24a2c2c1



More information about the Python-list mailing list