public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: emon <temursalin@gmail.com>
To: cygwin@cygwin.com
Subject: Re: running .bat file in cygwin
Date: Thu, 12 Jul 2012 19:52:00 -0000	[thread overview]
Message-ID: <34152926.post@talk.nabble.com> (raw)
In-Reply-To: <CA+sc5mnv_n=_9oE=qgZ5Hy2hz8QkzxLVviqPvkCM3pqObguV5g@mail.gmail.com>


Can you help me on this:

Need urgent help on thread: the goal here is the separtemask will take each
image and separate different contours and for each contour in the image it
will call handleobject thread. So every for loop will call the handeobject
thread. However, object index variable needs to be passed in each thread.
But only last value of objectndex is passed, this is becuase the speratemask
function loops and repalces the value of obj.objindx and only the last value
of obj.objindx is 
passed to all the threads. Is there anyway to pass each objectindex
value in handleobject. The code runs fine if we uncomment the
pthread_join(tid[objectIndex],NULL); but it will not give a parralel program

void separateMask(IplImage *maskImg)
{

for(r = contours; r != NULL; r = r->h_next){
cvSet(objectMaskImg, cvScalarAll(0), NULL);
CvScalar externalColor = cvScalarAll(0xff);
CvScalar holeColor = cvScalarAll(0x00);
int maxLevel = -1; 
int thinkness = CV_FILLED; 
int lineType = 8; /* 8-connected */
cvDrawContours(objectMaskImg, r, externalColor, holeColor, maxLevel,
thinkness, lineType, cvPoint(0,0));;
obj.objectMaskImg1[objectIndex]=(IplImage *) malloc(sizeof(IplImage));
obj.objectMaskImg1[objectIndex]=objectMaskImg;
obj.objindx=objectIndex;
obj.intensityOut1=intensityOut;
obj.tasOut1=tasOut;
pthread_create(&tid[objectIndex],NULL,handleObject,(void *)&obj);
//pthread_join(tid[objectIndex],NULL);
printf("objectindx %d\n",obj.objindx);
objectIndex++;

}
// cvReleaseImage(&objectMaskImg);
//cvReleaseMemStorage(&storage);
printf("Exitng Separatemask\n");

}


void* handleObject(void *arg)
{
int i, j;
handle *hndl;
hndl=(handle *) malloc(sizeof(handle));
hndl=(handle*)arg;
pthread_mutex_t lock=PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_lock(&lock);
IplImage *pImg;
float statistics_ratio[3][9];
pthread_t tid3;
tas3 tas2;
pImg = cvLoadImage("image.tif", CV_LOAD_IMAGE_ANYCOLOR |
CV_LOAD_IMAGE_ANYDEPTH);
if(pImg == NULL){
fprintf(stderr, "Fail to load image %s\n", "tiff file");
return ;
}
tas2.pImg1=pImg;
printf("tst%d\n",hndl->objindx);
tas2.x=hndl->objindx;
tas2.objectMaskImg1=hndl->objectMaskImg1[tas2.x];
tas2.statistics_ratio[3][9]=statistics_ratio[3][9];
double mean = average_intensity(pImg, tas2.objectMaskImg1); 
int total = total_white(pImg, tas2.objectMaskImg1);
pthread_mutex_unlock(&lock);

printf("Exiting handle object thread_id %d\n\n", pthread_self());
}


Earnie wrote:
> 
> On Wed, Jul 11, 2012 at 12:26 PM, emon wrote:
>>
>> Dear All,
>>               I am a newbie in cygwin.  However, I have used mingw so
>> far,
>> but it is not supporting fork(), so I need to switch to cygwin.  I have
>> created a build.bat file in my mingw (programming language C):
>>
> 
> Note, fork requires the cygwin1.dll file.  Are you prepared for that?
> 
>> gcc -o mask mask.c -pg -I/c/opencv/build/include  -lopencv_core231
>> -lopencv_highgui231 -lopencv_imgproc231 -L.
>> -L/c/opencv/build/x86/mingw/lib
>>
>> Can anyone suggest me how I can run this .bat file at cygwin or refer me
>> to
>> a site.
> 
> I've read all the other response, etc.  However, if you want to use
> the .bat file you can do
> 
> cmd /c build.bat
> 
> take care that your PATH has all you need and note that /posix/paths
> don't 't work with MinGW gcc.  But since you need fork() you'll need
> to use the Cygwin GCC anyway.
> 
> -- 
> Earnie
> -- https://sites.google.com/site/earnieboyd
> 
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/running-.bat-file-in-cygwin-tp34146666p34152926.html
Sent from the Cygwin list mailing list archive at Nabble.com.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

      parent reply	other threads:[~2012-07-12 19:52 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-11 16:26 emon
2012-07-11 16:38 ` Adam Dinwoodie
2012-07-11 16:39 ` Larry Hall (Cygwin)
2012-07-11 17:05   ` emon
2012-07-11 17:54     ` Larry Hall (Cygwin)
2012-07-11 16:59 ` Greg Chicares
2012-07-11 18:25 ` Earnie Boyd
2012-07-11 19:33   ` emon
2012-07-11 19:41     ` James Johnston
2012-07-12  2:57     ` Earnie Boyd
2012-07-12 19:52   ` emon [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=34152926.post@talk.nabble.com \
    --to=temursalin@gmail.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).