|
I believe Cousera.org is providing free course on Image Processing! you might be interested in it.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Since you're asking in the C/C++ forum, you might be interested in this book, by Harley R. Myler and Arthur R. Weeks:
The pocket handbook of image processing algorithms in C
P.S.: You should however consider that most, if not all, of the algorithms described in this book are built into modern graphics chips, or provided via easily obtainable readymade libraries. This is certainly an interesting field if you're interested in, but you're not likely to need that kind of knowledge in any real world project, unless you go into graphics chips design.
|
|
|
|
|
Hello Mbatra,
You might find the following helpful and beneficial:
Castleman, Kenneth R.
Digital image processing.
Chanda, Bhabatosh and Majumder, Dwijesh Dutta
Digital image processing and analysis.
Efford, Nick
Digital Image Processing.
Best of Luck!
Happy Reading!
With Kind Regards,
April
Comm100 - Leading Live Chat Software Provider
modified 27-May-14 8:39am.
|
|
|
|
|
Hello friends
MFC application in which I m creating two Ruler bar which contains different color are object of same class rulerWnd. Now, am handling Mouse procedure on rulerWnd[lButtondown,up,mouseMove] are working Fine If i used to drag and drop some color to same ruler bar.
But If i have to drag some color from one ruler bar to another then it is dropping on same ruler. when i drop on other ruler from first then I checked on LbuttonUp that Point values are coming in negative and its dropping on same ruler even if my mouse LButton ups on another.
How can i handle two Windows mouse procedure at same time.
Any Ideas?
here is sample code that I am trying.
OnLButtonDown(UINT nFlags, CPoint point)
{
case SELECT_COPY:
{
if(m_dwStyle == ruler1|| m_dwStyle == ruler2)
{
GetWindowRect(&rect);
ClipCursor(NULL);
SetCapture();
if(m_szSelectIndexRange.cx>-1 && m_szSelectIndexRange.cy>-1) {
int nSelIndex;
if(m_dwStyle == ruler1)
{
nSelIndex = point.x + m_lScrollPos;
nSelIndex /= fWarpUnit;
}
else
{
nSelIndex = m_nSize-(rect.Height()-point.y)-m_lScrollPos;
nSelIndex /= fWeftUnit;
}
if(nSelIndex >= m_szSelectIndexRange.cx && nSelIndex <= m_szSelectIndexRange.cy)
{
m_bSelectDrag = TRUE;
::SetCursor(AfxGetApp()->LoadCursor(IDC_DRAG_CURSOR));
}
}
}
}; break;
}
OnMouseMove(UINT nFlags, CPoint point)
case SELECT_COPY:
{
if(m_bSelectDrag)
{
CRect rectWnd, invalidRect;
GetClientRect(&rectWnd);
if(m_dwStyle == ruler2)
{
m_lPaintEndPos = point.y; invalidRect = CRect(0, point.y-50- (m_szSelectIndexRange.cy-m_szSelectIndexRange.cx)*m_fStep*pDoc->GetZoomValue(), 22, \
point.y +50);
}
else
{
m_lPaintEndPos = point.x + m_lScrollPos;
invalidRect = CRect(m_lPaintEndPos-50, 0, \
m_lPaintEndPos+50+(m_szSelectIndexRange.cy-m_szSelectIndexRange.cx)*m_fStep*pDoc->GetZoomValue(), 22);
}
InvalidateRect(&invalidRect, FALSE);
}
else SelectStripe(point);
}; break;
OnLButtonUP(UINT nFlags, CPoint point)
case SELECT_COPY:
ClipCursor(NULL);
if(m_bSelectDrag)
{
CopyStripe(point);
m_bSelectDrag = FALSE;
}
else SelectStripe(point);
break;
|
|
|
|
|
As I Come to know that SetCapture is creating problem.I am using setCapture on LButtondown and Releasing it on LButtonUP.
But While dragging, I want to release it as Mouse moved on another ruler2 So that it capture to ruler2 and if mouse come back to ruler1, i want to capture to it.
Any Ideas?
Thanks.
|
|
|
|
|
In LAN,two computers A and B are conected.I compile a function code for share directory set.The program run in A computer.In B computer's addres bar inputting A computer's IP,I can see the directory of shared but DBClicking the folder I cannot enter and system tell me that I don't have the right to get into the folder to perform the edition.
However,my friends in another city and another test environment,can get the true result normal function.
Futhermore,manual setting share directory can be normal but the program setting cannot.At the same time,I find some different points.In editting security policy setting,"Group or user names:" add an item which is "Everyone" in manual setting,but program setting not appear.If this is the reason,how to set in program?
Thanks for all.
DWORD param_err = NERR_Success;
DWORD dwRet=NERR_Success;
TCHAR szMsg[MAX_PATH] ={0};
SHARE_INFO_2 p;
p.shi2_netname = TEXT("TESTSHARE");
p.shi2_type = STYPE_DISKTREE; p.shi2_remark = TEXT("TESTSHARE");
p.shi2_permissions = ACCESS_ALL;
p.shi2_max_uses = -1;
p.shi2_current_uses = 0;
p.shi2_path = TEXT("C:\\WW");
p.shi2_passwd = NULL; dwRet = NetShareAdd(NULL, 2, (LPBYTE) &p, ¶m_err);
if ( dwRet != NERR_Success)
{
_stprintf(szMsg, _T("Add share error %d"), dwRet);
MessageBox(szMsg);
}
else
{
MessageBox(_T("Add share successful."));
}
|
|
|
|
|
Dear all..
I want to create a lab view which can be run on mini2440.
For the Lab view Application i want to use dll. which includes some basic functions.
so which programming language i have to use to create dll.
please help ..
thank you ...
sunil
-- modified 4-Dec-12 10:18am.
|
|
|
|
|
What exactly are you trying to create here, and why do you think you need a DLL before you have even decided what language to code in? And what Operating System will be running on the mini2440 (whatever that may be)?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Dear sir,
I created a Dll in VC++ and it worked on lab view Appliation,
but when i try to use this same Dll in Lab View Application for mini2440,
i am getting Error..
Please help me,,
How to create dll for mini2440.?
thank you
sunil
|
|
|
|
|
sunil880089 wrote: and it worked on lab view Appliation Waht is a lab View application?
sunil880089 wrote: this same Dll in Lab View Application for mini2440 What is mini2440?
sunil880089 wrote: i am getting Error. Well we cannot guess what that error may be, you will have to tell us.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
I have a pretty large and old application where the user can select the current customer from a combobox. However, the number of customers have grown (>100) to the point where the users think that selecting a customer from the list is awkward.
Does anyone have a good suggestion for a replacement for a CComboBox? The droplist portion should be a multilevel menu or a tree or similar ... I have seen several attempts here and in other places, but they all seem pretty experimental (non-standard UI behaviour, hardcoded drawing functions not utlizing themes, and so on).
|
|
|
|
|
You could use the same idea that a lot of websites use, in that they build their lists dynamically as the user types into them. So if the user starts typing a you just load all the customer names from that sub group. Here are some CodeProject articles[^] that discuss the issue.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Thanks for the input, using some kind of incremental search could be an option.
However, my query was for a custom control with similar functionality as a CComboBox, but where the list box (the dropdown part) is replaced with a tree control or a menu with submenus. There's several examples here at codeproject, but I don't find any of them really cut for the job. It seemed like a pretty common problem, so there should definitely be someone out there having solved it.
|
|
|
|
|
Mattias G wrote: there should definitely be someone out there having solved it. Well I guess not since you can't find a sample.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
If you could find a ComboBox that expands into CListCtrl, then you can use the grouping feature of the CListCtrl.
But an easier solution is just to use two ComboBoxes. One that allows one to select user type, and one that displays the filtered result within the selected user type.
|
|
|
|
|
Hi
I have a function
void TakeData(myStruct &structRef)
{
CString str = TmpFileMgr->TmpFilePathName() ;
structRef.cstrFilePath = str ;
}
in a dll which takes Temporary folder path and assign it in a CString variables. This CString variable is member of structure object which is passed as a reference to TakeData(myStruct &structRef)function.
I am able to print temporary folder path in TakeData function and CString assigment works perfectly on Windows XP. But when I run this code on Windows 7 it crashes at the point where I am doing assigment of temp folder path in a CString variable. I have all admin rights on Windows 7 System , also I have put UAC to OFF.
Please provide any input in this regard. Thanks
modified 3-Dec-12 10:16am.
|
|
|
|
|
pandit84 wrote: But when I run this code on Windows 7 it crashes at the point where I am doing assigment of temp folder path in a CString variable. And yet this is the code you do not show. If TakeData() is not pages long, please post it.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
|
What is the definition of myStruct , and what is the value of structRef when the crash occurs?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Struct is defined as below. Before crash ,value of cstrFilePath is empty.
struct myStruct
{
int charsize ;
CString cstrFilePath;
myStruct() : charsize (0)
{
cstrFilePath.Empty();
}
} ;
|
|
|
|
|
pandit84 wrote: Before crash ,value of cstrFilePath is empty. Which is rather irrelevant. What I asked was, what is the value of structRef when the crash occurs?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
You have supplied very little to go on, so in addition to suggesting you provide more information I'll ask a question: are you allocating memory in one module and freeing it in another (a module is a dll or exe)?
Steve
|
|
|
|
|
I am sorry for adding incomplete info.
I have allocated memory to object of structure myStruct in one dll and passed this struct object as a reference to another dll. This crash happens only while assinging value to
structRef.cstrFilePath variable. Finally I was able to assign value inside CString variable using
wsccpy method. I was able to resolve this crash with following code , but I am sure this is not the correct way to do it.
wcscpy (structRef.cstrFilePath.GetBuffer (), str.GetBuffer ()) ;
I am still trying to resolve this issue in a correct way. I am using Windows 7 system and GCC Compiler. Thanks all for replying to my previous post.
|
|
|
|
|
Unless you configure things properly each module (dll or exe or other executable module) has it's own heap. In this environment you can't allocate memory in one module and free it another. Given that CString manages a buffer using an instance in multiple modules could result in this happening. Forget wcscpy, it's ugly and isn't a fix for the root problem, whatever it is. If it's heap corruption, which is my guess, it's going to blow up sooner or later and "fixing" one problem with an ugly hack will just result in it popping up somewhere else.
Steve
modified 5-Dec-12 11:14am.
|
|
|
|
|
Finally I have solved this issue.
The CString when used with GCC was Used as LinuxCString which is internally std::string. Capacity of std::string when calculated was every time 0. so when I tried to assign const char* to LinuxCString ( i.e. CString in MSVC ) it was crashing.
I have used std::string.reserve (200) method to specify the capacity first while initialization. This solves my issue.
I am still evaluating whether my fix is perfect or not.
Thanks all
|
|
|
|