آموزش تحلیل مولفه اساسی یا PCA در متلب - قسمت دوم

با سلام 

خب در این قسمت قصد داریم استفاده از تکنیک PCA را توی یه پروژه توضیح بدیم :

فرض کنید شما تو فاز استخراج ویژگی، یه سری ویژگی رو بدست آوردین، الان میخواین ابعاد این ویژگی ها رو کاهش بدین. خب شروع میکنید به نوشتن یه تابع برای PCA و بردار ویژگی هاتون رو هم به عنوان ورودی بهش میدین. 

حالا داخل تابع چی بنویسیم؟ فاز اول میانگین گیری هستش، از چی؟ از همون بردار ویژگی که به عنوان ورودی بهش دادین. بعد از این باید اختلاف بردار ویژگی رو از بردار میانگین بدست بیارین.

فاز دوم محاسبه ی کواریانس، ماتریس کواریانس یه ماتریس N*N هستش، میتونیم از این ماتریس K تا بردار ویژه رو بدست بیاریم. واسه همین از تابع eig استفاده میکنیم، چون ایشون بردار ویژه و مقادیر ویژه رو از یه ماتریس واسمون فرآهم میکنن. 

فاز سوم تغییر مختصات، الان ما بردار ویژه و مقادیر ویژه رو داریم، پس داده هامون رو میبریم به مختصات جدید، پس از دستور diag استفاده میکنین. 

خب پس در کل به این نتیجه رسیدیم که بردارهای ویژگی N بعدی براساس K بردار مشخصه، به فضای K بعدی نگاشت میشن. 

حالا خروجی تابع PCA، به عنوان ورودی به شبکه عصبی (مثلا تو پروژتون از شبکه عصبی استفاده کردین) داده میشه واسه آموزش شبکه. 

راستی یه فیلم آموزشی فارسی در زمینه ی PCA هست، که میتونین از لینک زیر تهیه کنید :

http://faradars.org/courses/mvrnn9102mn-principal-component-analysis-pca-in-matlab

آموزش تحلیل مولفه اساسی یا PCA در متلب - قسمت اول

با سلام 

در این پست میخوایم راجب تحلیل مولفه اساسی یا PCA بحث کنیم. 

PCA یه تکنیک آماریه که واسه کاهش ابعاد داده ها یا انتخاب و استخراج ویژگی به کار میره. مثلا فرض کنید پروژه ی شما درمورد تشخیص چهره با استفاده از شبکه عصبی باشه، خب تو فاز استخراج ویژگی، ویژگی های مربوط به چهره رو بدست آوردین و حالا قراره این ویژگی ها رو بفرستین به عنوان ورودی به شبکه عصبی، خب معمولا ابعاد این ویژگی ها زیاده، و همشون هم مورد استفاده قرار نمیگیرن، پس بهترین راه اینه که میزان ابعاد این ویژگی ها رو کاهش بدیم و اونهایی رو که واقعا نیاز هست رو انتخاب کنیم واسه ورودی به شبکه عصبی. خب اینجا معمولا تکنیک PCA خیلی مفید واقع میشه. 

خب مگه PCA چی کار میکنه؟ میاد محورهای مختصات جدیدی واسه داده ها تعریف میکنه. اولین محور باید در جهتی باشه که پراکندگی داده ها بیشتره و دومین محور عمود بر محور اولی و در جهتی که واریانس داده ها بیشتره و به همین ترتیب بردارهای دیگه عمود بر محورهای قبلی در جهتی که پراکندگی داده ها بیشتر باشه.  PCA سعی میکنه تو فرآیند کاهش ابعاد، اون داده هایی که مهم هستن رو نگه داره و اضافی ها رو حذف کنه، توجه کنین چه قدر تو این تکنیک به پراکندگی داده ها اشاره میکنیم، مدام میگیم هرجایی که پراکندگی داده ها بیشتر باشه. 

خب در اینجا یه سورس کد از mathworks واستون گذاشتم :

% PCA 
% Written by SIAMAK FARIDANI
% I used this tutotial
% www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf
clc; close all; clear all; numdata=20; %should be even %step 1, generating a dataset x1=rand(numdata/2,1); y1=rand(numdata/2,1); x2=3*rand(numdata/2,1)+3; y2=3*rand(numdata/2,1)+3; x=[x1;x2]; y=[y1;y2]; %step 2, finding a mean and subtracting xmean=mean(x); ymean=mean(y); xnew=x-xmean*ones(numdata,1); ynew=y-ymean*ones(numdata,1); subplot(3,1,1); plot(x,y, 'o'); title('Original Data'); %Uncomment to see the data after the deduction of the mean %subplot(4,1,2); %plot(xnew,ynew, 'o'); %title('mean is deducted') %step 3, covariance matrix covariancematrix=cov(xnew,ynew); %step 4, Finding Eigenvectors [V,D] = eig(covariancematrix); D=diag(D); maxeigval=V(:,find(D==max(D))); %step 5, Deriving the new data set %finding the projection onto the eigenvectors finaldata=maxeigval'*[xnew,ynew]'; subplot(3,1,2); stem(finaldata, 'DisplayName', 'finaldata', 'YDataSource', 'finaldata'); title('PCA 1D output ') %we do a classification now subplot(3,1,3); title('Final Classification') hold on for i=1:size(finaldata,2) if finaldata(i)>=0 plot(x(i),y(i),'o') plot(x(i),y(i),'r*') else plot(x(i),y(i),'o') plot(x(i),y(i),'g*') end end

تکنیک PCA چیست ؟

سلام دوستان

در زیر یه خودآموز در مورد تکنیک PCA و پیاده سازی اون تو متلب قرار دادم ، امیدوارم مفید باشه

PCA-Tutorial

الگوریتم Viola-Jones برای تشخیص چهره

سلام دوستان گل 

این پست در پاسخ یکی از خوانندگان قرار داده شده ( درخواست موضوع ) 

Viola - Jones الگوریتم AdaBoost رو با Cascade واسه تشخیص چهره ترکیب کردن . الگوریتم پیشنهادی شون می تونست چهره رو تو یه تصویر 384×288 با صرف زمانی معادل 0.067 ثانیه تشخیص بده. یعنی 15 بار سریع تر از آشکار ساز های state-of-the-art با دقتی بالاتر ، به طوریکه این الگوریتم یکی از پیشرفته ترین الگوریتم های ماشین بینایی در دهه ی گذشته تا به حال بوده . اما یه توضیح مختصر در مورد این که نقش AdaBoost در این الگوریتم چیه ؟ می تونه این باشه که : در ابتدا تصویر مورد نظر به زیر تصاویر ( 24×24 ) تقسیم بندی میشه. هر زیر تصویر بیانگر یه بردار ویژگی هستش. واسه این که محاسبات موثر و کارآمد باشه ، از یه سری ویژگی های خیلی ساده استفاده می کنیم . تمام مستطیل های ممکن تو زیر تصویر بررسی میشن. در هر مستطیل ، 4 نمونه ویژگی به کمک ماسک هایی که در شکل زیر اومده استخراج میشه . ( 4 ماسک ویژگی که واسه هر مستطیل استفاده میشه ) 

با هرکدوم از این ماسکها ، مجموع پیکسل های سطح خاکستری در نواحی سفید از مجموع پیکسل ها ی نواحی سیاه ، کم میشه. که این مقدار به عنوان یه ویژگی در نظر گرفته میشه. پس می تونیم اینطوری بگیم که تو یه زیر تصویر ( 24×24 ) بالغ بر 1 میلیون ویژگی می تونیم داشته باشیم ( البته این ویژگی ها خیلی سریع محاسبه میشن !! و می تونن کمتر از 1 میلیون ویژگی هم باشن مثلا 160000 در هر زیر تصویر )

هر ویژگی به عنوان یه یادگیرنده ی ضعیف در نظر گرفته می شه، یعنی :  

الگوریتم یادگیری پایه تلاش میکنه که بهترین کلاسیفایر ضعیف  رو که ، کوچیک ترین خطا رو در کلاسبندی داره پیدا کنه. 

 مستطیل های چهره رو به عنوان مثالهای positive در نظر میگیریم. تو شکل زیر اومده:( مثالهای آموزشی مثبت)  

و مستطیل هایی که شامل تمام چهره نمیشن ، به عنوان مثالهای آموزشی Negative تلقی میشن. سپس الگوریتم AdaBoost رو اعمال میکینم ، ایشون تعدادی یادگیرنده ی ضعیف رو برمیگردونن ، که هرکدوم از اینا مربوط به یکی از 1 میلیون ویژگی هایی هست که داریم. درواقع اینجا ، AdaBoost می تونه به عنوان یه ابزار واسه انتخاب ویژگی در نظر گرفته بشه.

در ابتدا دو تا ویژگی و موقعیت مربوط به اونا در چهره انتخاب میشه . بدیهی که هر دو ویژگی بصری هستن. که اولین ویژگی اختلاف مقدار شدت روشنایی نواحی چشم و قسمتهای پایین تر از اون رو اندازه گیری میکنه و دومین ویژگی اختلاف مقدار شدت روشنایی نواحی چشمها با نواحی بین چشمها رو اندازه میگیره . با استفاده از ویژگی های انتخاب شده ، یه درخت نامتعادل ساخته میشه که بهش کلاسیفایر Cascade میگن . به شکلها دقت کنین :

پارامتر در Cascade تنظیم میشه به طوریکه ، در هر نود درخت ، ما یه انشعاب not a face داریم و معنیش اینه که تصویر ، یه تصویر چهره نبوده ، یا به عبارت دیگه ، نرخ false negative داره به حداقل میرسه. ایده ی این طرح در واقع می خواد بگه تصویر غیره چهره زودتر شناسایی میشه. به طور متوسط در هر زیر تصویر 10 تا ویژگی رو مورد بررسی قرار میدیم. اینم تعدادی آزمایش که Viola – Jones روی تصاویر انجام دادن :

البته می شه از جعبه ابزار متلب هم واسه تشخیص چهره با الگوریتم Viola - Jones استفاده کرد به این صورت 

close all

clc

%Detect objects using Viola-Jones Algorithm

%To detect Face

FDetect = vision.CascadeObjectDetector;

%Read the input image

I = imread('face3.jpg');

%Returns Bounding Box values based on number of objects

BB = step(FDetect,I);

figure,

imshow(I); hold on

for i = 1:size(BB,1)

    rectangle('Position',BB(i,:),'LineWidth',5,'LineStyle','-','EdgeColor','r');

end

title('Face Detection');

hold off;


--------------------------------------------------------------------------------------------------------

ماهیان کوچک چشمانم 

آبی چشمان تو را می شناسند 

چشمانت را که می بندی 

دیوان شعر من 

نا تمام می ماند

تکنیک های حاشیه نویسی تصویر ( image annotation )

سلام

این پست به سفارش یکی از خوانندگان آماده شده ، حاشیه نویسی تصویر یا image annotation  

 چیه ؟؟  خوب ....

یافتن تصویر مورد نیاز یک کاربر از بین تصاویر بسیار زیاد، یک کار چالش برانگیز است.تحقیقات اخیر نشان می‌هد که یک فاصله معنایی(Semantic Gap) بین بازیابی تصاویر براساس محتوا (CBIR) و معنای تصویر قابل فهم برای انسان، وجود دارد. بهترین راه برای پل زدن روی این فاصله معنایی ، حاشیه نویسی خودکار تصویر است.

بازیابی تصویر شامل سه روش اصلی است:

حاشیه نویسی دستی و سنتی تصویر و بازیابی مانند بازیابی متن. ( غیر عملی )          

بازیابی تصویر بر اساس محتواکه با استفاده از ویژگی‌‌های محتوایی سطح پایین مانند رنگ، شکل و بافت بازیابی می‌شود. ( عملی )   

حاشیه نویسی خودکار تصاویر و بازیابی متن‌ها

توصیه می کنم حتما فایل زیر رو دانلود کنین .... امیدوارم مفید باشه ، راستی اگه سوالی داشتین در خدمتم !!

دانلود فایل آموزشی

----------------------------------------------------------------------------------------------------------

یاد تو حس قشنگی است که در دل دارم  ، چه تو باشی چه نباشی از سر دلتنگی

نگهش می دارم

ردیابی اشیا ( object tracking )

سلام دوست گرامی 

شما درمورد ردیابی اشیا در تصویر یا object tracking  پرسیده بودین ، در این باره باید بگم که : یکی از مسائل مهم و در حال توسعه در پردازش تصویر و بینایی ماشین مساله ردیابی اشیا ست.در واقع ردیابی اشیا نمایش تغییرات موقعیت یک شی و دنبال کردن آن در یک دنباله  تصاویر ویدیویی با یک هدف خاص میباشد.اگرچه سابقه ایجاد پدیده ردیابی اشیا به مسائل نظامی بر میگرده ولی امروزه به دلیل کاربردهای بسیار گسترده ردیابی اشیا در زمینه های مختلف این مقوله و جوانب مختلف آن در سالهای اخیر مورد توجه ویژه  ای قرار گرفته ، ردیابی روش های خاصی داره که برای کاربردهای خاصی به کار می ره از جمله ی این روش ها  kalman filter  ، particle filter  ، wavelet و segmentation است. البته شما می تونین از help نرم افزار متلب هم در این باره استفاده کنین .  از این مقاله هم خوبه واسه مطالعه :

Real-time Multiple Objects Tracking with Occlusion Handling in Dynamic Scenes 

باز هم اگه سوالی بود در خدمت هستم ، امیدوارم توضیحاتم به سوال شما نزدیک بوده باشه ، موفق باشین.

------------------------------------------------------------------------------------------------

روی هر پله ای که باشی خدا یک پله بالا ترست نه به خاطر این که خداست 

به خاطر این که دست تورا بگیرد.

دانلود مقاله و سورس کد تشخیص لبه تصویر با الگوریتم کلونی مورچه ها

سلام

این پست رو فقط واسه ی شما ، خواننده ی همیشگی این وب ، پری نوشتم . شما دنبال یه موضوع واسه پایان نامه ات بودی ، خوب من فکر کردم اگه دوست داری تو حوزه ی پردازش تصویر کار کنی بد نیست با این روش ها آشنا بشی ! این مقاله در مورد تشخیص لبه ی تصویر به وسیله ی الگوریتم کلونی مورچه هاست ! با اجازتون ترجمه اش کردم ( البته اگه مشکلی تو ترجمه هست بفرمایین ! آره خودم می دونم زبانم داغونه !!! )  هم خودشو و هم اصلشو واسه دانلود گذاشتم . راستی یه پیاده سازی از این مقاله تو متلب هم واسه دانلود گذاشتم می تونی ازش ایده بگیری ..... موفق باشی !!

دانلود اصل مقاله

دانلود ترجمه مقاله

دانلود سورس کد لبه یابی تصویر با کلونی مورچه ها

ببین این هم اجرای کد داخل متلب :

--------------------------------------------------------------------------------------------------------------

من احساس کرده ام رنج آن دلقک دوره گرد را که اقیانوسی از غرور در دلش موج می زد

 اما سکه رهگذر خودخواهی آن را می خشکاند …

 

درج تصویر در بانک اطلاعاتی

پاسخ به نظرات خوانندگان

سلام  مریم گلی !!

این پست فقط واسه توست ... یه هفته نبودنتو ندید میگیرم ولی دیگه repeat نشه ها ؟؟؟ 

خیلی راحت میشه یه تصویر رو داخل دیتابیس ذخیره کرد ، به این صورت که اولا یه فیلد داخل جدول از دیتابیست ایجاد می کنی به نام مثلا pic که از نوع varbinary max باشه. خوب حالا داخل فرمت بعد از انجام مقدمات اولیه واسه درج در جدول یه picturebox واسه تصویر انتخابی داخل فرمت می گذاری به علاوه ی یه دکمه به نام درج تصویر .

حالا تو رویداد دکمه ی درج تصویر یه تکه کد می نویسی که از کاربر می خواد تصویر مورد نظرشو انتخاب کنه و این تصویر داخل picturebox واسه نمایش دیده بشه.

بعد از این تو رویداد دکمه ی ثبت باید این کد کنار عمل insert در جدول نوشته بشه . خوب این کد چی کار می کنه؟

اولا یه متغییر به نام مثلا b از نوع Bitmap ایجاد می کنه و اون تصویری که داخل picturebox ما بود رو می ریزه داخلش ( یعنی اول تصویر رو تبدیل می کنه به Bitmap بعد اونو داخل b قرار می ده). حالا یه جریانی داخل حافظه اصلی به نام ms ایجاد می کنه تا تصویر داخل رم ذخیره بشه یعنی اون تصویری که تو b بود رو داخل ms با فرمت خام Rawformat ذخیره میکنه . چون تصویری که تو دیتابیس ذخیره میشه باید از نوع آرایه ایی از byte باشه پس ما آرایه ی arrpic رو واسه این کار تعریف می کنیم و تصویرمون رو داخلش قرار می دیم یعنی به وسیله ی متد getbuffer از ms می خونیم . حالا فقط کافیه این متغییر ( arrpic ) رو داخل جدولت درج کنی !

 

راستی عکس personal فقط همینا رو ازتون داشتم ، خوب افتادین ، خوش عکسین ماشالا ، مخصوصا داداشم 

 -----------------------------------------------------------------------------------------------------------------------------------------

دلمو می شکنی ، این بار چندمه ، هرچی کوتاه می یام تو چشم تو گمه ...... هرچی دورتر میشی وابسته تر میشم .....

 

تفاوت الگوریتم Canny و Sobel در تشخیص لبه

پاسخ به نظرات خوانندگان

سلام

شما در مورد تفاوت بین دو الگوریتم Canny و Sobel در تشخیص لبه پرسیده بودین، دوتا برنامه به علاوه یه مقاله واسه دانلود گذاشتم امیدوارم مفید باشه.

دانلود فایل

اجرای برنامه ها رو می تونید تو تصاویر زیر ببینید :

خروجی برنامه ی canny2 :

خروجی این برنامه با توجه به مقدار سیگما و آستانه ایی که انتخاب کردم ایجاد شده ، البته شما می دونید که بهینه سازی الگوریتم canny در انتخاب مناسب سیگما و مقدار آستانه ست .

خروجی برنامه ی sobel :

-------------------------------------------------------------------------------------------------------------------
صبحی که شروعش با توست ، خورشید دیگر اضافیست !

کاهش تعداد رنگ در تصویر با سی شارپ

پاسخ به نظرات خوانندگان

سلام 

شما در مورد کاهش تعداد رنگ در تصویر پرسیده بودین ، فایل زیر شامل دو مورد سورس کد هست که شاید بتونه کمکتون کنه . البته اینا رو واستون ایمیل هم کردم ولی مثل این که ایمیلتونو چک نکردین ! امیدوارم واستون مفید باشه !!! موفق باشید ..... 

دانلود فایل

 ---------------------------------------------------------------------------------------------------------------------

می دانی
که من
جز با تو
با هر کس که باشم
 تنهایم…؟  ..... خدا  .......

آموزش wavelet toolbox در متلب

پاسخ به نظرات خوانندگان

سلام 

یه آموزش کوچولو از wavelet toolbox آماده کردم امیدوارم واستون مفید باشه ، یه سورس کد هم هست در مورد ارتقا تصویر با استفاده از dwt ،می تونید ازش ایده بگیرید و یه جورایی راهنمایی اولیه ست  . امیدوارم موفق باشین ...

دانلود فایل

 دانلود سورس کد

--------------------------------------------------------------------------------------------------------------------------

 سر به هوا نیستم !
اما همیشه چشم به آسمان دارم !
حس عجیبی است !
دیدن همان آسمانی که شاید توچند لحظه پیش به آن خیره شده باشی !

دانلود شبکه عصبی موجکی

پاسخ به نظرات خوانندگان

سلام 

فایل زیر آموزش شبکه عصبی موجکیه ! خیلی خوب توضیح داده ، چندتا سورس کد هم داخلش هست .

دانلود فایل آموزشی

 

--------------------------------------------------------------------------------------------------------------------------

تنها بهانه . . .

دوست داشتن توست
که این چنین
انگشتان خسته و بی رمقم را
برای نوشتن واژه ها می چرخاند . . .!


ارتقا تصویر با استفاده از DWT

پاسخ به نظرات خوانندگان

سلام 

شما در مورد ارتقا تصویر با استفاده از DWT پرسیده بودین ، دو تا مقاله در این زمینه واسه دانلود گذاشتم نمی دونم چه قدر می تونه واستون مفید باشه ؟ چند تا لینک هم موجوده که سورس کد مربوط به پیاده سازی داخلش هست که باید با وی پی ان بازشون کنین . امیدوارم موفق باشید 

دانلود فایل

 

http://www.codeforge.com/s/0/CONTRAST-ENHANCEMENT-dwt

http://freepdfdb.com/pdf/dwt-in-matlab-code

http://www.mathworks.com/matlabcentral/newsreader/view_thread/277198

http://www.mathworks.com/matlabcentral/answers/30688

 

-----------------------------------------------------------------------------------------------------------------------

آنقدر برای دیدنت عجله کردم که هنوز،

دلم

بند کفش هایش را نبسته بود !

با همان حال تمام دشت را دویدم تا به تو برسم .......

دانلود کامپایلر c++ / c برای اندروید

پاسخ به نظرات خوانندگان

سلام 

شما در مورد برنامه یا نرم افزاری پرسیده بودین که بشه باهاش برنامه های c رو ، روی اندروید اجرا کرد : یه کامپایلر به نام C4droid وجود داره که از زبان C و C++ پشتیبانی می کنه و امکان کامپایل برنامه ها به این دو زبان رو داره.از لینک زیر می تونید دانلودش کنید ، موفق باشید ....

دانلود نرم افزار

-----------------------------------------------------------------------------------------------------------------

تلخی دوریت رو به دل می کشم روی خیالت اشک می ریزم هیچ وقت خیال نکن تو رو فراموش میکنم

 اما .... اما مثه این که تو ........

 

تبدیل کد های متلب به فایل های DLL

پاسخ به نظرات خوانندگان

سلام 

یه آموزش واسه تبدیل کد متلب به dll نوشتم ، می تونین از لینک زیر دانلود کنین ، امیدوارم واستون مفید باشه 

دانلود فایل

---------------------------------------------------------------------------------------------------------------

روزهای سختی رو میگذرونم !
وقتی که نیستی همه چیز تنگ میشود !
نفسم
دنیایم
دلم !

رفع مشکل پیغام فرمت فلش مموری

پاسخ به نظرات خوانندگان

سلام 

ببین خیلی راحت از CMD کافیه  دستور  chkdsk رو تایپ کنی بعد درایو مربوط به فلشتو مشخص کنی و از دستور f /   هم واسه پیدا کردن و تعمییر خطا های فلشت استفاده کنی !! اون وقت همه چی اوکی میشه!

----------------------------------------------------------------------------------------------------------------------

باران کـه میبـارد…… دلـم بـرایت تنـگ تـر می شـود….. راه می افـتم … بـدون ِ چـتـر … من بـغض می کنـم ….آسمـان گـریـه ..

 

 

ساخت منوی کلیک راست در سی شارپ

پاسخ به نظرات خوانندگان

سلام  !

یه پروژه ی جدید از نوع مثلا windows form application می گیری ، من سعی کردم تو پروژه ام از دیتابیس استفاده کنم وگرنه این کلیک راست کردنو میشه واسه فرم یا هر شی دیگه که داخلش هست مثل یه textbox هم انجام داد. خوب اول مقدمات اتصال به دیتابیس دلخواهتو فراهم کن واطلاعات یه جدولشو داخل Datagrid تو فرمت نمایش بده ، اوکی الان می خواییم منوی کلیک راست روی Datagrid رو ایجاد کنیم به طوری که هر موقع کاربر روی Datagrid کلیک راست کرد گزینه های جدید ، ویرایش ، حذف و .... رو ببینه. واسه این کار از toolbox شی context menu strip رو انتخاب می کنی و روی فرمت قرار می دی . دقیقا مثل menu strip می مونه و گزینه های مورد نظر تو بهش اضافه می کنی . می تونی با دو بار کلیک روی هر گزینه کد مربوط به اونو هم بنویسی مثلا واسه حذف ، کد حذف از دیتابیس رو بنویس و .... خوب حالا Datagrid رو انتخاب کن و از prop گزینه ی context menu strip رو به اسم context menu strip1 تغییر بده . این context menu strip1 همونیه که از toolbox انتخابش کردی و روی فرمت گذاشتی . تغییرات رو ذخیره کن و از برنامه اجرا بگیر ، الان اگه رو جدولت کلیک راست کنی منوها ظاهر میشن.

-------------------------------------------------------------------------------------------------------------------------

 برایم دعا کن ، اجابتش مهم نیست ، نیاز من به آرامشی ست که بدانم تو به یاد منی !

 

 

شیشه ایی کردن فرم در سی شارپ

پاسخ به نظرات خوانندگان 

دوست من اگه می خوای فرم برنامه ات به شکل شفاف در بیاد باید کار های زیر رو انجام بدی : اولا رو فرمت کلیک کن و از prop خاصیت  Transparency key  رو به Gray تغییر بده ( Transparency key > web > Gray ) 

حالا از toolbox شی panel رو به فرمت اضافه کن طوری که تمام فرمت رو بگیره ( خاصیت Dock شو center بزار) و Back color شو به Gray تغییر بده ( Back color > web > Gray ) 

 تغییرات رو ذخیره کن و ازش اجرا بگیر . 

-----------------------------------------------------------------------------------------------------------------------------

خدای من “بهشتی ” دارد، نزدیک، زیبا، بزرگ

و به گمانم “دوزخی ” دارد، کوچک، بعید

و در پی دلیلی ست که ببخشد ما را

گاهی به بهانه ی یک دعا . . .

Types of color renderings

پاسخ به نظرات خوانندگان

سلام !

انواع مختلف پردازش رنگ داریم که شامل : true color ، false color ، pseudo color ، Density color و choropleth می شه .

True color:

یه تصویر از نوع true color است به این شرط که تفسیری از رنگ های طبیعی برای اشیائ داخل تصویر ارائه کنه ، یعنی هر شی در تصویر ما رنگ طبیعی خودش رو داره و رنگ ها در حوزه ی دیداری انسان هستن . یه درخت سبز ، سبز دیده می شه یا یه سیب قرمز ، قرمز نمایان می شه یا یه آسمان آبی به رنگ آبی در تصویر ظاهر میشه .

False color:

واسه سهولت در تشخیص ویژگی هایی از اشیا که به آسانی قابل شناسایی نیستن رنگ واقعی اشیا از تصویر رو حذف می کنه. برای مثال نور مادون قرمز برای تشخیص پوشش گیاهی در یه تصویر ماهواره ایی .

یه تصویر از نوع false color می تونه به وسیله ی طیف دیداری ساخته بشه اما معمولا بعضی یا همه ی داده ها از طیفی از باند ها به وسیله ی خصوصیات فیزیکی شی مورد مطالعه در تصویربه وجود می آید.چشم انسان از سه طیف باند استفاده می کنه .این سه طیف در یه تصویر false color باهم ترکیب می شن و حداقل دو تا از این طیف ها واسه رمزگذاری false color لازم میشه.

برای یه تصویر از نوع true color کانال های RGB از دوربین به کانال های RGB مربوط به تصویر نگاشت می شن ( یعنی همون رنگ واقعی اشیا در تصویر ) در حالی که برای false color این ارتباط تغییر می کنه و یه تصویر RGB در طیف دیداری به یه الگوی متفاوت مثل GBR نگاشت می شه. مثلا واسه تصاویر ماهواره ایی از زمین یه نگاشت RGB به NRG رو داریم که N یعنی طیف مادون قرمز .

False color واسه تصاویر ماهواره ایی برای مثال: سنجش از راه دور ماهواره ها ، تلسکوپ ها یا پروپ های فضایی استفاده می شه.

Pseudo color:

تصویری که مشتق شده از تصویر سطح خاکستری (gray level) به وسیله ی نگاشت هر مقدار شدت روشنایی به یه رنگ با توجه به یه جدول یا تابع . یه مثال معمول واسه pseudo color تصاویر دمانگاری ست.

یا یه مثال آشنای دیگه تصاویررمزگذاری پستی و بلندی ها در نقشه هاست . که مقدار منفی به وسیله ی سایه های آبی و مقدار مثبت به وسیله ی رنگ های سبز و قهوه ایی نمایش داده می شن.

Pseudo color باعث میشه که جزییات در تصویر بیشتر مشخص بشه. بسته به تابع یا جدول و انتخاب منابع داده ، استفاده از این مدل پردازش ممکنه باعث افزایش میزان اطلاعات از تصویراصلی بشه ، برای مثال اضافه کردن اطلاعات جغرافیایی ، ترکیب اطلاعات بدست آمده از طیف مادون قرمز یا اشعه ی ماورائ بنفش یا دیگر منابع .

Density color:

یه نسخه ی دیگه از pseudo color ست که تصویر رو به یه تعدادی باند های رنگی تقسیم می کنه این تقسیم بندی به صورت گسسته انجام میشه برخلاف pseudo color که از مقیاس پیوسته استفاده می کنه ، این پردازش برای آنالیز سنجش از راه دورتصاویر خیلی مناسبه .

Choropleth

یه تصویر یا یه نقشه ایی که هر ناحیه ی اون به عنوان یه متغییر در نظر گرفته می شه یا الگویی متناسب با طبقه بندی داره ، متغییر ها نگاشت می شن به تعدادی رنگ و هر ناحیه ( متغییر ) یه رنگ مخصوص به خودش رو می گیره ، این پردازش بر پایه ی density color ست.

--------------------------------------------------------------------------------------------------------------------------

شاید دیگه از یادت رفتم ، ولی باز قلب من آروم نمی شه ، تنها غم تو باز دوباره تو دلم پا می زاره ،

 تو که رفتی اون می مونه همیشه ..............

درج فیلد جدید درtable پایگاه داده بدون ساخت مجدد table

پاسخ به نظرات خوانندگان 

سلام  ! 

ببین گاهی وقت ها می خوای داخل محیط سی شارپ چند تا فیلد جدید به جدول دیتابیست اضافه کنی ، وقتی فیلد های جدید رو درج می کنی موقع ذخیره سازی پیغام می ده که چون داخل جدول اطلاعاتی وجود داره نمی شه این کار رو کرد و مجبورت می کنه که جدولتو دو مرتبه از نو بسازی ! 

اما راه حل زیر باعث می شه خیلی راحت این مشکل برطرف بشه : 

از منوی Tools گزینه ی options رو انتخاب کن . از پنجره ایی که باز شده برو به Database Tools از اونجا Table and Database Designers حالا تیک گزینه ی Prevent saving changes that require re-creation رو بردار .


در این جا یه فیلد به نام date& time به جدولم اضافه کردم و بدون این اینکه دو مرتبه جدول رو از نو بسازم ذخیره اش کردم .

-----------------------------------------------------------------------------------------------------------------------

عشق را رنگ آبی زدم، دوست داشتن را قرمز، نامردی را سیاه، دروغ را سفید،

ولی نمیدانم چرا به تو که میرسم نمیدانم مهربانی چه رنگی است؟


نصب برنامه های تحت ویندوز در لینوکس

پاسخ به نظرات خوانندگان 

سلام ! 

واسه این که بتونی برنامه های تحت ویندوز رو داخل Ubuntu لینوکس هم داشته باشی نیاز به نرم افزار هایی مثل play on Linux یا wine داری ، ما فرض می کنیم می خوای از play on Linux استفاده کنی بنابراین اول باید نصبش کنی واسه این کار برو به ubuntu software center و از لیست برنامه ها انتخابش کن و گزینه ی install رو بزن.

اوکی الان play on linux نصب شده ، اگه گزینه ی install رو بزنی لیست تمام برنامه های تحت ویندوز نمایش داده میشه ، هرکدوم رو که خواستی انتخاب کن و next رو بزن و دست آخر install . گاهی وقت ها واسه بعضی نرم افزار ها نیاز به CD شون هم میشه . 

ببخش بدون تصویره ! حال نداشتم تصویر بزارم ، تنبلیه دیگه ، پیش می یاد!! موفق باشی .....

----------------------------------------------------------------------------------------------------------------------------------

دلم یک کوچه می خواهد...

بی بن بست...

وبارانی نم نم...

و یک خدا 

اضافه کردن toolbox جدید به متلب

پاسخ به نظرات خوانندگان 

سلام ! 

ببین واسه اضافه کردن یه toolbox جدید به نرم افزار متلب اول اونو داخل پوشه ی toolbox از شاخه ی اصلی که نرم افزار رو نصب کردی کپی کن حالا از منوی File گزینه ی  set patch رو می زنی از پنجره ایی که باز میشه دو تا دکمه با عناوین  Add folder و  Add with sub folder رو می بینی ، می تونی دومی رو کلیک کنی ، حالا فولدر شامل toolbox رو انتخاب می کنی و دکمه ی save رو می زنی و در آخر close

 موفق باشی ...... 

-----------------------------------------------------------------------------------------------------------------------------------

خدایا.........

خواستم بگویم تنهایم

اما نگاهت.........لبخندت.....

مرا شرمگین کرد

چه کسی بهتر از تو   !!!

تفاوت بین الگوریتم Canny و الگوریتم sobel در پردازش تصویر

پاسخ به نظرات خوانندگان

سلام 

در مورد تفاوت بین الگوریتم sobel و canny پرسیده بودین ، ابتدا بهتره از help متلب استفاده کنین چون واقعا عالی توضیح داده ، یه سری مقاله در این رابطه آماده کردم می تونین دانلود کنین به این دو تا آدرس هم سر بزنین ، موفق باشین ......

دانلود مقاله

edge detection

canny edge detector

-------------------------------------------------------------------------------------------------------------------------

چه خوش خیال است ، فاصله را میگویم ، به خیالش تو را از من دور کرده

نمیداند جای تو امن است ، اینجا در میان دل من ...............

Edit text در GUI متلب

پاسخ به نظرات خوانندگان 

سلام ! شما در مورد  وارد کردن مقدار در یک جعبه متنی پرسیده بودین ، ببین تو gui متلب یه شی داریم به نام Edit text که از نوار سمت چپ انتخابش می کنی ، با دو بار کلیک کردن روی اون پنجره ی prop باز میشه و تو می تونی خاصیت های اونو تغییر بدی ، ما اینجا فعلا فقط خاصیت string اونو عوض می کنیم و هرچی داخلش نوشته شده رو پاک می کنیم . حالا  مثلا اسمش edit1 باشه . 

اوکی الان می تونی تو برنامه ات ازش استفاده کنی ، دو تا متد داریم به نام get و  set که با متد get می تونی هر خاصیتی از شی مورد نظر رو که خواستی( حالا می تونه رنگش باشه یا متنش یا هرچیز دیگه ) دریافت کنی و با متد set می تونی هر خاصیتی از شی رو که خواستی تغییر بدی . پس get واسه خوندن محتوای یه شی به کار می ره و set واسه تغییر دادن محتوا . 

یه برنامه ی ساده در مورد آستانه گیری از تصویر در ادامه شرح داده شده که در اون از کاربر می خوای مقداری رو واسه آستانه وارد کنه و سپس با زدن کلید Apply مقدار آستانه رو  تصویر اعمال میشه . 

ابتدا از جعبه ابزار یه Edit text با نام edit1 و یه push button به نام Apply رو فرمت قرار می دی . 

حالا داخل رویداد Apply : اول یه تصویر به نام I خونده میشه و از rgb به سطح خاکستری می ره . الان باید به کاربر اجازه بدیم مقدار دلخواهشو واسه آستانه در Edit text وارد کنه ، حالا تو فرض کن مقدار رو وارد کرده  پس باید محتوای داخل Edit text خونده بشه ، اوکی باید از دستور get استفاده کنیم ، این دستور می گه : از edit1 بخون محتوای string شو . 

محتوای Edit text خونده شده و داخل متغییر y قرار گرفته اما این محتوا string و ما نیاز به مقدار عددی داریم پس با دستور str2double به مقدار عددی تبدیلش می کنیم . 

می خوایم آستانه ی مورد نظر کاربر رو به تصویر اعمال کنیم پس از دستور im2bw واسه این کار استفاده می کنیم و دست آخر نتیجه رو به کاربر نمایش می دیم .

------------------------------------------------------------------------------------------------------------------------------------------

وقتی با 1 انگشت به سمت کسی اشاره می کنی و مسخرش میکنی اگه خوب به دستت دقت کنی 3 تا انگشتت به سمت خودته.........

 

حذف مقدار از جدول در JSP

پاسخ به نظرات خوانندگان 

سلام  ! 

در صفحه ی member قرار بود مقادیر موجود در جدول member نمایش داده بشه ، که این کا رو با یه select زدن انجام دادیم ، بعد واسه اضافه کردن عملیات حذف item از جدول ، چکباکس بهش اضافه کردیم . یادت که هست؟

اوکی ، بعد صفحه ی delete رو اماده کردیم که داخلش عملیات حذف  item مورد نظر کاربر انجام میشد ، حالا واسه این که جدول همیشه به روز باشه بعد از عملیات حذف باید به صفحه ی member ارجاع داده بشه . من حس می کنم مشکل شما در عملیات ارجاع به صفحه ی member باشه . 

-------------------------------------------------------------------------------------------------------------------------------------

 گفتم دوستت دارم نگاهي به من کرد و گفت: چند تا؟ دستام رو بالا آوردم و تمام انگشتهاي دستمو نشونش دادم اما اون به کف دستام نگاه مي کرد که خالي بود ......

پیاده سازی سیستم تشخیص عنبیه

پاسخ به نظرات خوانندگان

سلام  !

این یه پیاده سازی از سیستم تشخیص عنبیه ست ، که کد های هر مرحله رو جداگانه توضیح داده ، امیدوارم واستون مفید باشه ، موفق باشین .....  راستی این کد رو واسه این آپ کردم که بتونین ازش ایده بگیرین بنابراین هیچ تضمیمی واسه درست اجرا شدنش نیست !!  سوالی داشتین در خدمتم ..... 

 لینک دانلود

 ----------------------------------------------------------------------------------------------------------------------

ﺧﺪﺍﯾﺎ ﻣﻨﻮ ﺑﺒﺨﺶ ﺍﮔﺮ ﻫﻤﯿﺸﻪ ﺑﻪ ﻓﮑﺮ ﺭﺿﺎﯼ ﻫﻤﻪ ﯼ ﻫﯿﭻ ﻫﺎ ﻫﺴﺘﻢ ﻭﻟﯽ ﺑﻪ ﻓﮑﺮ ﺭﺿﺎﯼ ﺗﻮ ﮐﻪ ﻫﻤﻪ ﻫﺴﺘﯽ ، ﻧﯿﺴﺘﻢ …

معرفی تگ table در JSP

پاسخ به نظرات خوانندگان

سلام 

در مورد تگ table در صفحه ی jsp پرسیده بودین ، بزار اول در مورد این تگ به صورت کامل واست بگم :

زمانی که بخواییم در صفحه ی jsp جدولی داشته باشیم از تگ table استفاده می کنیم

برای درج مقدار در جدولمون باید تگ td (table data)باز کرده داخلش مقدار مورد نظرت رو وارد کنی سپس این تگ رو ببندیش ، اگه همین الان از این کد اجرا بگیری چیزی جز یه نوشته ی ساده نمی بینی و خبری از جدول نیست .

این یعنی جدول باید کادر داشته باشه واسه همین از border استفاده می کنیم ، مقدار border میزان ضخامت کادر جدول رو معلوم می کنه ، مثلا اینجا من مقدارشو 4 انتخاب کردم.

 

 

جدول ما ممکنه چند تا ردیف داشته باشه واسه همین باید از تگ tr استفاده کنی .

در این جدول ما دو تا ستون داریم و دو تا سطر، که ستون ها به وسیله ی تگ td و سطر ها با تگ tr ایجاد شدن .

اما درمورد مشکل شما ، ایجاد جدول واسه نمایش مقادیرموجود در member به صورت زیر است:

ابتدا ایجاد ردیف واسه عناوین ستون ها مثل pass word ، name ، email با استفاده از تگ tr سپس داخل این تگ برای خلق ستون ها از تگ td استفاده می کنیم . ( چون می خوایم داخل جدول چک باکس هم باشه پس واسش یه ستون ایجاد می کنیم اما چیزی داخلش نمی نویسیم )

 

می خوایم مقدار موجود در نمونه شی ResultSet رو که نتیجه ی دستور select ما بوده رو داخل جدول نمایش دهیم.

این هم اجرای برنامه

 

----------------------------------------------------------------------------------------------------------------------

از خــدا مــیخواهــم آنــچه را شــایسته تــوسـت

بــه تـــو هــدیـــه دهـــد

نــه آنـچـه را کــه آرزو داری

زیــرا گــاهـی آرزوهــای تــو کـوچـک اسـت

و شــایـسـتـگی تــو بــسـیــار...


 

پیاده سازی الگوریتم رتبه بندی گوگل

پاسخ به نظرات خوانندگان 

سلام 

در مورد نحوه ی پیاده سازی الگوریتم رتبه بندی گوگل پرسیده بودین ، این الگوریتم رو میشه با زبان های java ، دلفی و .... پیاده سازی کرد ، لینک زیر این الگوریتم رو در متلب پیاده سازی کرده : 

http://en.wikipedia.org/wiki/PageRank

امیدوارم موفق باشین .....

------------------------------------------------------------------------------------------------------------------------

خدای خوب مــن ، زنـدگی بـه سـختی اش می ارزد

اگر تو در انتهای هر قصه ایسـتاده باشی …

تفاوت servlet با JSP

پاسخ به نظرات خوانندگان

در مورد تفاوت بین servlet با jsp پرسیده بودین ،

Servlet

کلاس های جاوا هستن که عملکرد وب سرور رو از طریق ایجاد صفحات وب پویا توسعه می دن . یه موتور به نام servlet engine دارن که وظیفه اش بار گذاری ، اجرا و برداشتن سرورلت هاست . این موتور به طور مستقیم با وب سرور در ارتباطه و درخواست هایی که مشتری صادر کرده رو می گیره و به سرولت مناسب پاس می ده ، بعد از پردازش در سرولت ، نتیجه رو به مشتری بر می گردونه .

بزار راجب وظایف servlet engine این طوری واست بگم که :

بار گذاری سرولت مناسب با این درخواست

فراخوانی متد init() مربوط به این سرولت

حالا هرچی درخواست مربوط به این سرولت می شه رو با فراخوانی متد service() اش واسش بفرست

اگه موتور سرولت خاموش بشه ، باید متد destroy() همه ی سرولت ها فراخوانی بشه.

JSP

اسناد HTML که داخلشون کد های جاوا نوشته شده و همینه که باعث میشه صفحات پویا بشن. تو خیلی راحت می تونی این صفحات رو داخل هر ویرایشگر متنی که خواستی بنویسی بعد هم با پسوند jsp ذخیره اش کنی. فقط واسه اجرا به یه وب سرور نیاز داری همین.

شرح مختصر:

سرولت کلاس های محض جاواست در حالی که jsp این طور نیست.

ما می تونیم کد های html رو هم داخل jsp داشته باشیم و هم داخل servlet

وقتی که کد html رو داخل جاوا می نویسیم می گیم servlet اما وقتی داخل html کد جاوا می نویسیم می شه jsp 

Servlet ها استاتیک هستن در صورتی که jsp داینامیکه.

سرعت servlet ها نسبت به jsp بیشتره چون از جنس جاوا کلاس هستن .

 

JDBC چیست ؟

پاسخ به نظرات خوانندگان 

سلام  ! 

JDBC یه رابط برنامه سازی کاربردیه (API)  که باعث میشه برنامه های جاوا به دیتا بیس متصل بشن. مثل یه استاندارد می مونه و اصلا واسش مهم نیست که تو الان از Mysql داری استفاده می کنی یا Oracle ، همیشه با یه روش اتصال به دیتا بیس رو برقرار می کنه. 

اما چه وظایفی بر عهده داره ؟ 

1 - ارتباط با پایگاه داده 

2 - ارسال دستورات sql 

3 - پردازش و دریافت نتایج برگشتی از پایگاه داده 

4 - قطع ارتباط با بانک اطلاعاتی 

چه شکلی میشه این وظایف رو پیاده سازی کرد؟؟؟ 

ابتدا باید نوع درایور رو واسه اتصال معین کنیم . 

سپس باید برای اتصال یه URL تعریف کرده و با استفاده از متد زیر اونو فراخوانی کنیم. همین طور که می بینی داخل URL در واق داریم می گیم می خوایم به کدومو دیتابیس متصل بشیم ، نام کاربری و پسورد ما چیه ؟ 

حالا واسه پرس و جو از پایگاه داده ، به متد کلاس statement نیاز داریم تا دستور sql رو ببره واسه پایگاه داده 

سپس برای اجرا ی دستور SQL از متد execute استفاده می کنیم البته گاهی وقت ها اگه قراره نتیجه رو برگردونه باید execute query بزنی اما اگه فقط می خوای اجرا بشه همون execute کافیه . البته مدل های مختلف دیگه ایی هم داره مثل execute update و .... که واسه عملیات خاصی مثل درج و ویرایش داده ها در جدول استفاده میشه. 

آخر دست هم باید connection رو ببندیم. 

البته می دونی که باید همه ی این دستورات رو داخل بلوک try - catch بنویسی . 

--------------------------------------------------------------------------------------------------------------------------------

غصه مرا کُشت...!!! وقتی دیدم دست به سینه ایستاده ای... تمام ِ راه را برای آغوشَت دویده بودم بی انصاف....


دانلود مقاله رتبه بندی سایت ها در گوگل

پاسخ به نظرات خوانندگان

سلام دوست عزیز !

اینم چند تا مقاله به زبان فارسی :

دانلود مقاله

موفق باشید .......

---------------------------------------------------------------------------------------------------------------

خدایا

راهی نمیبینم ، آینده پنهان است اما مهم نیست. همین کافیست که تو راه را میبینی و من تو را . . .

 

دانلود نرم افزار های جانبی Mysql

پاسخ به نظرات خوانندگان

سلام 

نرم افزار های Mysql Admin و Mysql Query  رو واسه دانلود گذاشتم ! شاد و موفق باشین .....

 

دانلود نرم افزارها

 

-----------------------------------------------------------------------------------------------------------------

خدای من
نه آن قدر پاکم که کمکم کنی و نه آن قدر بدم که رهایم کنی
میان این دو گمم
هم خود را و هم تو را آزار میدهم
هر چه قدر تلاش کردم نتوانستم آنی باشم که تو خواستی
و هرگز دوست ندارم آنی باشم که تو رهایم کنی
آنقدر بی تو تنها هستم که بی تو یعنی “ هیچ ” یعنی “ پوچ ”
خدایا هیچ وقت رهایم نکن . . .

دانلود نرم افزار دیکشنری برای اندروید

پاسخ به نظرات خوانندگان 

سلام 

یه نرم افزار دیکشنری واسه اندروید درخواست کرده بودید ، من از Fast dic استفاده می کنم . لینک دانلودشو گذاشتم دوست داشتین دانلود کنین ..... 


دانلود نرم افزار دیکشنری برای اندروید


---------------------------------------------------------------------------------------------------------------------------

خدایا
در دو راهی زندگی ام تابلوی راهت را محکم قرار بده ، نکند که با نسیمی راهم را کج کنم 


دانلود سورس کد تشخیص چهره با  Fisher face

پاسخ به نظرات خوانندگان

سلام  !

این پست رو فقط واسه شما نوشتم parisa عزیز ، منتظر ایمیلت بودم ولی چون جوابی ندادی ترجیح دادم چند تا لینک بهت معرفی کنم ، امیدوارم واست مفید باشه !

لینک زیر پیاده سازی تشخیص چهره با متد Fisher face به وسیله ی opencv

Fisher face + opencv

این هم یه مقاله راجبه Fisher face

Fisher face

و پیاده سازی Fisher face با نرم افزار متلب

دانلود سورس کد متلب

امیدوارم موفق باشی .....

-------------------------------------------------------------------------------------------------------------------

دوستش دارم ...

بزرگیش را ...

سکوتش را ...

عظمتش را ...

تنهاییش را ...

حکمتش را ...

صبرش را ...

و ...

و ...

بودنش عادتیست ، مثل نفس کشیدن !

خدا را میگویم .


تگ File select در jsp

پاسخ به نظرات خوانندگان

سلام  ! 

شما در مورد تگ File Select پرسیده بودین ،

اولا این تگ رو از palette انتخاب می کنی  و یه نام واسش می گذاری . 

اجرایی که در تصویر دیدی یه دکمه به نام Submit هم داره چون قرار بوده فایل انتخابی رو واسه صفحه ی بعدی بفرسته همین و این چیز خاصی نیست.

شما زمانی که فایلی رو انتخاب می کنید به جای no file chosen نام فایل رو می نویسه البته در مرور گر chrome این طوریه . 

امیدوارم مشکلت حل شده باشه ! 


-----------------------------------------------------------------------------------------------------

تو را هر لحظه به خاطر می آورم

بی هیچ بهانه ای

شاید دوست داشتن همین باشد.........

پیاده سازی عملگر سوبل در سی شارپ

پاسخ به نظرات خوانندگان

سلام  ! 

این پست رو فقط واسه تو نوشتم  zari عزیز ، نمی دونم یادت هست یا نه ؟ پیغامی داده بودی که الگوریتم سوبل رو با سی شارپ پیاده سازی کنم . ایمیل یا وب سایتی بهم معرفی نکرده بودی که باهات در ارتباط باشم . معذرت می خوام یکم دیر شد ، درگیر یه پروژه بودم . 

یه لینک در زیر هست که امیدوارم واست مفید باشه بهش سر بزن . 

Edge detection in an image using sobel filter in VB.net - C#.net