به انجمن های تخصصی دانلود رایگان خوش آمدید
نام کاربری یا ایمیل:  
پسورد:     
ثبت نام | بازیابی پسورد
ثبت نام راهنما لیست اعضا مشاهده ارسال های جدید مشاهده ارسال های امروز
X اطلاعات تالار نشان میدهد که شما عضو نیستید. لطفا از این لینک در کمتر از 1 دقیقه ثبت نام کنید



ارسال موضوع  ارسال پاسخ 
 
امتیاز موضوع:
  • 2 رأی - میانگین امیتازات : 4
  • 1
  • 2
  • 3
  • 4
  • 5

آموزش visual C++

نویسنده پیام
*
ارسال ها: 351
اعتبار: 0
سپاس کرده: 0
سپاس شده: 95 در 81 موضوع

امتياز: 101.00

ارسال: #1
آموزش visual C++
امروز يکم از پردازش تصوير صحبت ميکنم. اولين گام پردازش تصوير کار با رنگ نقاط (pixel) هستش. اما بايد بگم توی حالت عادی شما ۳ درجه رنگی از ۳ رنگ اصلی آبی و سبز و قرمز برای هر نقطه داريد که با کم و زياد شدن شدت هر مولفه اصلی رنگ حاصل تغيير ميکنه . اما تو پردازش تصوير اين فرمت اصلا به درد نمی خوره ! دليلش اينه که شما معمولا نياز به تشخيص يه محدوده رنگی خاص داريد مثلا رنگ حول و حوش صورتي, حالا با ۳ رنگ اصلی چطور می خوايد اين محدوده رو تعيين کنيد ؟! ميشه گفت محاله ممکنه  يا بهتر بگم اصلا عقلانی نيست دنبالش بريد.!!!
پس بايد دنبال شيوه ای برای اون باشيم!
برای هر رنگ ما ۳ مشخصه می تونيم نام ببريم :
۱- نام رنگ (چيز بهتری گير نيووردم بهش بگم -> Hue ) :
اين يعنی اينکه رنگ چيه ! مثلا ميگی آبی يا آبی يکم متمايل به سبز يا ....
۲- شدت رنگ :
اگه دقت کرده باشيد هر رنگ ميتونه پر رنگ يا کم رنگ باشه اما ماهيت ذاتی اون يه چيزه و فقط کم رنگ تر يا پررنگ تر شده به اين ميگن -> Saturation
۳- روشنايی يا تيرگی رنگ :
يه رنگ رو می تونيد بهش نور بتابونيد که روشناييش زياد بشه يا نور رو کم کنيد که روشناييش کم بشه که ميتونه انقدر کم بشه که سياه بشه !! به اين ميگن->Intensity
اميدوارم تونسته باشن خوب برسونم منظورم چيه !
پس يه حوضه جديد که الهام گرفته از چشم هستش رو باهاش آشنا شديم که کار روی رنگها برای تصميم گيری روی مشخصات اون رو راحت ميکنه. به اين حوضه رنگی اصطلاحا HSI ميگن که مخفف اون ۳کلمه بالاست. شکل زير نمودار تغييرات رنگ رو با توجه به اين ۳ مولفه نشون ميده:
http://www.sharemation.com/asdf1753/visu...rModel.jpg
H بين ۰ تا ۳۶۰ هستش يعنی از قرمز تا سبز ۱۲۰ درجه و از سبز تا آبی ۱۲۰درجه و از آبی تا قرمز ۱۲۰ درجه در جهت خلاف جهت حرکت عقربه های ساعت.
S بين ۰ تا ۱۰۰ هستش که از کم رنگ (۰) تا پر رنگ (۱۰۰)
I از ۰ تا ۱۰۰ هستش يعنی از تاريک(۰) تا روشن(۱۰۰)
چند نمونه از رنگها در ۲ حوضه مذکور :
رنگ
RGB مقادیر
HSI مقادير
سياه
(255,255,255)
(0,0,0)
سفيد
(255,255,255)
(0,0,100)
قرمز
(255,0,0)
(0,100,100)
سبز
(0,255,0)
(120,100,100)
آبی
(0,0,255)
(240,100,100)
! قهوه ای
(64,128,128)
(180,50,50)

حالا نياز به اين داريم که RGB مربوط به هر نقطه را به HSI تبديل کنيم که رابطش رو به صورت سی نوشتم که r,g,b همون ۳ رنگ آبی و سبز و قرمز هر نقطه هستش:
int min,max;
/////////////////////
if(r>g)
**
max=r;
min=g;
}
else
**
max=g;
min=r;
}
if(b>max)
max=b;
if(b<min )

min=b;
////////////////////
if(max==0)
**
i=0;
s=0;
h=0;
}
else
**
i=max*100/255;
s=(max-min)*100/max;
h=180*acos((((r-g)+(r-b))/2)/sqrt(pow(r-g,2)+(r-b)*(g-b/3.1415;
if(b>g)
h=360-h;
}
جمعه ۲۰ بهم ۱۳۸۵ ۲۳:۱۴ عصر
یافتن تمامی ارسال های این کاربر سپاس نقل قول این ارسال در یک پاسخ
*
ارسال ها: 351
اعتبار: 0
سپاس کرده: 0
سپاس شده: 95 در 81 موضوع

امتياز: 101.00

ارسال: #2
RE: آموزش visual C++
امروز ميخوايم يه برنامه ساده بنويسيم که يوزر و پسورد و شماره تلفن بگيره و خودش شروع کنه به اينترنت وصل بشه.
اول که بايد يه پروژه جديد بسازيد و ۳ تا edit box برای اطلاعات يوزر و پسورد و شماره تلفن.
اولين کاری که بايد کنيد اينه که ۱-۲ کلاس رو به پروژه اضافه کنيد که با ۲خط زير انجام ميديد:
#include "ras.h"
#include "raserror.h"
حالا ۲ تا دکمه بگذاريد برای وصل شدن و قطع ارتباط.
برای وصل شدن از چند خط ساده زير استفاده کنيد که هر خط رو جداگانه توضيح ميدم:
RASDIALPARAMS rdParams;// متغييری(شئی) است برای دادن اطلاعات مورد نياز برای کانکت به اينترنت
rdParams.dwSize = sizeof(RASDIALPARAMS);
rdParams.szEntryName[0] = '\0';
lstrcpy( rdParams.szPhoneNumber, m_strPhoneNumber );//در اين قسمت شماره تلفن را مقدار دهی ميکنيم
rdParams.szCallbackNumber[0] = '\0';
lstrcpy( rdParams.szUserName, m_strUserName );//در اين قسمت يوزررا مقدار دهی ميکنيم
lstrcpy( rdParams.szPassword, m_strPassword );//در اين قسمت پسورد را مقدار دهی ميکنيم
rdParams.szDomain[0] = '\0';
HRASCONN hRasConn = NULL;//اين متغيير برای نسبت دادن يک هندل به اين کانکشن در صورت موفقيت خوهد بود که بتوان در آينده از آن استفاده کرد مثلا آنرا قطع کرد
DWORD dwRet = RasDial( NULL, NULL, &rdParams, 0L, NULL, &hRasConn );//در اين قسمت شروع به شماره گيری ميکند و نتيجه شماره گيری بازگردانده می شود که در صورت موفقيت صفر و در غير اين صورت شماره خطلا خواهد بود
if ( dwRet == 0 ) return true;
char szBuf[256];
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )//اگر منجر به خطا شد با استفاده از شماره خطا متن خطا را بدست آمرده نمايش می دهيم و کانکشن را می بنديم
wsprintf( (LPSTR)szBuf, "Undefined RAS Dial Error (%ld).", dwRet );
RasHangUp( hRasConn );
MessageBox( (LPSTR)szBuf, "Error", MB_OK | MB_ICONSTOP );
return false;

تا ايجا نحوه خيلی ساده اتصال رو ديديم. حالا بايد در صورت نياز امکان قطع کردن رو هم فراهم کنيم که اونم به سادگی کد زير هستش:
RASCONN ras[20];
DWORD dSize, dNumber;
char szBuf[256];

connected=false;
ras[0].dwSize = sizeof( RASCONN );
dSize = sizeof( ras ); // Get active RAS - Connection
DWORD dwRet = RasEnumConnections( ras, &dSize, &dNumber );
if ( dwRet != 0 )
**
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS Enum Connections error (%ld).", dwRet );
MessageBox( (LPSTR)szBuf, "RasHangUp", MB_OK | MB_ICONSTOP );
return false;
}
bool bOK = true;
for( DWORD dCount = 0; dCount < dNumber; dCount++ )
** // Hang up that connection
HRASCONN hRasConn = ras[dCount].hrasconn;
DWORD dwRet = RasHangUp( hRasConn );
if ( dwRet != 0 )
**
char szBuf[256];
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS HangUp Error (%ld).", dwRet );
MessageBox( (LPSTR)szBuf, "RasHangUp", MB_OK | MB_ICONSTOP );
bOK = false;
}
}
return bOK;
با اين ۲ تابع ساده ميتونيد به اينترنت متصل شيد. اما نکاتی که هست اينه که :
اول اصلا کانکشن ويندوزی ساخته نميشه.
دوم اينکه ايکون اتصال هم نمايش داده نميشه و دست شمارو باز ميگذاره که هرجور دوست داريد اعمال سليقه کنيد.
يك شنبه ۲۲ بهم ۱۳۸۵ ۱۶:۰۶ عصر
یافتن تمامی ارسال های این کاربر سپاس نقل قول این ارسال در یک پاسخ
*
ارسال ها: 1
اعتبار: 0
سپاس کرده: 0
سپاس شده: 0 در 0 موضوع

امتياز: 100.00

ارسال: #3
RE: آموزش visual C++
سلام من مي خوام پردازش تصوير براي ربات هاي فوتباليست توسط ويژوالc++ياc#انجام بدم اگه ميشه راهنماييم كنيد
ممنون
سه شنبه ۲۳ بهم ۱۳۸۶ ۲۱:۰۲ عصر
یافتن تمامی ارسال های این کاربر سپاس نقل قول این ارسال در یک پاسخ
*
ارسال ها: 1
اعتبار: 0
سپاس کرده: 0
سپاس شده: 0 در 0 موضوع

امتياز: 100.00

ارسال: #4
RE: آموزش visual C++
من میخوام بازی مین یاب رو با visual c++بنویسم تورو خدا کمک کن همین امشب
جمعه ۲۷ فرو ۱۳۸۹ ۰۳:۰۵ صبح
یافتن تمامی ارسال های این کاربر سپاس نقل قول این ارسال در یک پاسخ
ارسال موضوع  ارسال پاسخ 


موضوع های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  آموزش جامع Visual C# 2005 مریم بارونی 5 388 جمعه ۲۴ مرد ۱۳۹۳ ۱۸:۰۹ عصر
آخرین ارسال: مریم بارونی
  افزودن قطعه كد به ToolBox در Microsoft Visual Studio مریم بارونی 0 297 جمعه ۲۴ مرد ۱۳۹۳ ۱۷:۴۵ عصر
آخرین ارسال: مریم بارونی
  واسط کاربری مدرن، هدیه MFC به برنامه نویسان ++Visual C مریم بارونی 2 410 جمعه ۲۴ مرد ۱۳۹۳ ۱۷:۲۷ عصر
آخرین ارسال: مریم بارونی





تالار گفتمان اف دی ال - انجمن تخصصی دانلود رایگان - تالار گفتگوی ایرانیان © 1395.