|
umai wrote: however i got problem to do the looping as my lecturer want me to...can anyone teach me how to do it?
Please detail your problem: what exactly do you need to accomplish and what is your trouble about?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
//////////////////////////////RGB CHANGE TO GREY SCALE COLOR/////////////////////////
for(x=X_START;x<=X_END;x+=X_SKIP) //ORIGINAL IMAGE SIZE-X AXIS
{
for(y=Y_START_SE;y<=Y_END_SE;y+=Y_SKIP) //SELECTED SCAN AREA-Y AXIS(FR ORI SIZE)
{
color=pDC->GetPixel(x,y);
m = 0.5*x;
n = 0.5*y;
r_image[m][n] = GetRValue(color);
g_image[m][n] = GetGValue(color);
b_image[m][n] = GetBValue(color);
brightness_image[m][n] = ((222*r_image[m][n]+707*g_image[m][n]+71*b_image[m][n])/1000);
if(brightness_image[m][n]<0)
brightness_image[m][n] = 0;
if(brightness_image[m][n]>255)
brightness_image[m][n] = 255;
Haugh_image[m][n]=0;//Haugh_image INITIALIZATION
}
}
for(x=X_START;x<=X_END;x+=X_SKIP) //ORIGINAL IMAGE SIZE-X AXIS
{
for(y=Y_START_SE2;y<=Y_END_SE2;y+=Y_SKIP) //SELECTED SCAN AREA-Y AXIS(FR ORI SIZE)
{
color=pDC->GetPixel(x,y);
m = 0.5*x;
n = 0.5*y;
r_image[m][n] = GetRValue(color);
g_image[m][n] = GetGValue(color);
b_image[m][n] = GetBValue(color);
brightness_image[m][n] = ((222*r_image[m][n]+707*g_image[m][n]+71*b_image[m][n])/1000);
if(brightness_image[m][n]<0)
brightness_image[m][n] = 0;
if(brightness_image[m][n]>255)
brightness_image[m][n] = 255;
Haugh_image[m][n]=0;//Haugh_image INITIALIZATION
}
}
//////////////////EDGE DETACTION BY SOBEL FILTER & DENSITY CONVERSION///////////////////
//UPPER LEFT AREA
for(x=X_START_L1+1;x<=X_END_L1-1;x++)
{
for(y=Y_START_TH+1;y<=Y_END_TH-1;y++)
{
d[0]=brightness_image[x-1][y-1];
d[1]=brightness_image[x-1][y];
d[2]=brightness_image[x-1][y+1];
d[3]=brightness_image[x][y-1];
d[4]=brightness_image[x][y];
d[5]=brightness_image[x][y+1];
d[6]=brightness_image[x+1][y-1];
d[7]=brightness_image[x+1][y];
d[8]=brightness_image[x+1][y+1];
yyy=(float)(cy[0]*d[0] + cy[1]*d[1] + cy[2]*d[2] +cy[3]*d[3] +cy[4]*d[4] +cy[5]*d[5] +cy[6]*d[6] + cy[7]*d[7] + cy[8]*d[8]);
zzz=(float)(sqrt(yyy*yyy));
dat=(int)zzz;
if(dat>255) dat= 255;
sobel_image[x][y] = 255-(char)dat;
a = sobel_image[x][y];
pDC->SetPixel(x,y,RGB(a,a,a));
}
}
//UPPER RIGHT AREA
for(x=X_START_R1+1;x<=X_END_R1-1;x++)
{
for(y=Y_START_TH+1;y<=Y_END_TH-1;y++)
{
d[0]=brightness_image[x-1][y-1];
d[1]=brightness_image[x-1][y];
d[2]=brightness_image[x-1][y+1];
d[3]=brightness_image[x][y-1];
d[4]=brightness_image[x][y];
d[5]=brightness_image[x][y+1];
d[6]=brightness_image[x+1][y-1];
d[7]=brightness_image[x+1][y];
d[8]=brightness_image[x+1][y+1];
yyy=(float)(cy[0]*d[0] + cy[1]*d[1] + cy[2]*d[2] +cy[3]*d[3] +cy[4]*d[4] +cy[5]*d[5] +cy[6]*d[6] + cy[7]*d[7] + cy[8]*d[8]);
zzz=(float)(sqrt(yyy*yyy));
dat=(int)zzz;
if(dat>255) dat= 255;
sobel_image[x][y] = 255-(char)dat;
a = sobel_image[x][y];
pDC->SetPixel(x,y,RGB(a,a,a));
}
}
//LOWER LEFT AREA
for(x=X_START_L2+1;x<=X_END_L2-1;x++)
{
for(y=Y_START_TH2+1;y<=Y_END_TH2-1;y++)
{
d[0]=brightness_image[x-1][y-1];
d[1]=brightness_image[x-1][y];
d[2]=brightness_image[x-1][y+1];
d[3]=brightness_image[x][y-1];
d[4]=brightness_image[x][y];
d[5]=brightness_image[x][y+1];
d[6]=brightness_image[x+1][y-1];
d[7]=brightness_image[x+1][y];
d[8]=brightness_image[x+1][y+1];
yyy=(float)(cy[0]*d[0] + cy[1]*d[1] + cy[2]*d[2] +cy[3]*d[3] +cy[4]*d[4] +cy[5]*d[5] +cy[6]*d[6] + cy[7]*d[7] + cy[8]*d[8]);
zzz=(float)(sqrt(yyy*yyy));
dat=(int)zzz;
if(dat>255) dat= 255;
sobel_image[x][y] = 255-(char)dat;
a = sobel_image[x][y];
pDC->SetPixel(x,y,RGB(a,a,a));
}
}
//LOWER RIGHT AREA
for(x=X_START_R2+1;x<=X_END_R2-1;x++)
{
for(y=Y_START_TH2+1;y<=Y_END_TH2-1;y++)
{
d[0]=brightness_image[x-1][y-1];
d[1]=brightness_image[x-1][y];
d[2]=brightness_image[x-1][y+1];
d[3]=brightness_image[x][y-1];
d[4]=brightness_image[x][y];
d[5]=brightness_image[x][y+1];
d[6]=brightness_image[x+1][y-1];
d[7]=brightness_image[x+1][y];
d[8]=brightness_image[x+1][y+1];
yyy=(float)(cy[0]*d[0] + cy[1]*d[1] + cy[2]*d[2] +cy[3]*d[3] +cy[4]*d[4] +cy[5]*d[5] +cy[6]*d[6] + cy[7]*d[7] + cy[8]*d[8]);
zzz=(float)(sqrt(yyy*yyy));
dat=(int)zzz;
if(dat>255) dat= 255;
sobel_image[x][y] = 255-(char)dat;
a = sobel_image[x][y];
pDC->SetPixel(x,y,RGB(a,a,a));
}
}
this is the programming for the image conversion...let say, i want to create a loop for this command...how i want to do it?
|
|
|
|
|
First of all, please, use <pre> tags around code snippets.
Why don't you wrap that code inside a function and then iteratively call it?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Because that adds the cost of a function call to every pixel that is processed ?
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Actually he needs to loop over images.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hello,
I have made a dll of my classes and using them in a project. The project compiles properly but when I try to execute the project the behaviour is wierd.
The classes otherwise (without dll) are working as expected.
what must be the reason?
Regards
Pritha
|
|
|
|
|
Please define "weird".
|
|
|
|
|
See here [^]
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
Mmmhh, yes okayyyyy. That will help us a lot understanding the problem
|
|
|
|
|
prithaa wrote: the behaviour is wierd.
This normally happens when the code is weird. How about fixing that?
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Rajesh R Subramanian wrote: This normally happens when the code is weird
That was a good one.
|
|
|
|
|
Hello,
Thanks for all your replies.
The classes are working fine.Now when I make dll of them and include that dll for a client project the classes don't behave as were behaving earlier.
For ex I have a code
int Parent=0;
for(int i=0;i<10;++i)
{if(mstruct[i]=="Parent")
++Parent;
else
--Parent;
}
Now even if mstruct[i] = "Parent" the compiler moves to Parent--.
In my code (without dll )I would get ++Parent.
What must be the reason?
Thanks for your co-operation
Pritha
|
|
|
|
|
What is the type of mstruct ? If yo are using C-style strings, you can't compare strings this way: this will only compare if the addresses are the same, not the contents. With C-strings you should use strcmp function instead.
|
|
|
|
|
Hello,
Thanks for your reply.
mstruct is a CString .but anyway whatever works in my classes should work in dlls ,right? If there was a problem it should arise while making the classes not while mking dlls.
Thanks
Pritha
|
|
|
|
|
Did you try debugging to see what's happening in details ?
|
|
|
|
|
Hello,
Thanks,
Yes I tried debugging and found this.This code is in my classes from the dlls and not in the current project.
Pritha
|
|
|
|
|
|
Looping ?? You mean using a for or a do/while loop ?
If yes, it has nothing to do with MFC but it's pure C/C++ keyword. I also suggest that you read a good book about C or C++ programming (depends what interests you) because it is really really basic stuff.
|
|
|
|
|
...C tutorial is needed.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
If you delete your qeustion you cant get different answers.
|
|
|
|
|
Hi all,
In my application i am deleting files and want to display it in a list control as soon as i delete that file... my problem is that it is displayed after all the files are deleted not one by one.....
How to resolve it....
Thanks in advance
|
|
|
|
|
Are you using a separate thread to delete the files ? If no, then if this process is quite long, your UI won't respond to any messages anymore (which means that it is frozen and not updated so, you don't see the files removed from the list ctrl).
You have to do that in a worker thread and messages to your window when a file has been deleted. Handle this message in your dialog class and upon receiving it, remove the entry from the list control.
Another point: is the delete of these files that long ? Because in general it doesn't take a lot of time to delete a file, so even with a thread, chances are that it will be too fast to see something.
|
|
|
|
|
You can insert file names to listbox or listctrl before delete them.
|
|
|
|
|
I am trying to use dll without registering it. So, can I use dll without registering it.
|
|
|
|