صفحه شخصی محمود امین‌طوسی

Oct 21,2017

  • صفحه شخصی محمود امین‌طوسی

  • Seam Carving

    امروز قصد داشتم با رسیدن زمستان تصویر سربرگ سایتم را عوض کنم.  به دنبال تصویری از زمستان بودم که نوشته جالبی هم داشته باشد. تصویر زیر را یافتم (تصویر با اندازه 318x940 که کوچک شده و برش خورده تصویر اصلی است):

    تصویر جالب است اما وردپرس استفاده شده در این سایت فقط تصاویر با اندازه 198x940 را می‌پذیرد. تصویر اصلی بزرگ بود و به راحتی پهنای آنرا ۹۴۰ پیکسل کردم اما اگر ارتفاع آنرا ۱۹۸ پیکسل کنیم منظره کوهها را از دست خواهیم داد. قصد من آن بود که هم حدیث را داشته باشم و هم کوهها را. یک روش مناسب برای انجام این کار استفاده از Seam Carving است. این روش که از آن با نام «تغییر اندازه تصویر آگاه بر محتوا» نیز یاد می‌شود بر اساس حذف و اضافه مسیرهایی (درزهایی) در تصویر صورت می‌گیرد که کل مسیر حاوی اطلاعات کم ارزشی باشد.

    (more…)

    کارگاه لاتک و زی‌پرشین در هفتمین کنفرانس ماشین بینایی و پردازش تصویر


    سه‌شنبه ۲۴ آبان  ۱۳۹۰، کارگاه لاتک و زی‌پرشین در هفتمین کنفرانس ماشین بینایی و پردازش تصویر ایران برگزار گردید. کارگاه حدود ۴ ساعت طول کشید. قبل از برگزاری کنفرانس یک DVD شامل آخرین نسخه تک‌لایو ۲۰۱۱، راهنمای استفاده، نمونه مثالهایی از زی‌پرشین و برخی ابزارهای موردنیاز توسط آقای هادی صفی‌اقدم آماده شده بود که در اختیار شرکت کنندگان قرار گرفت.
    در این کارگاه به جز اسلایدهای تغییریافته کنفرانس ریاضی، از اسلایدهای خانم Lian Tze Lim و آقای وفا خلیقی نیز استفاده کردم. هدف اصلی کارگاه ایجاد انگیزه در شرکت‌کنندگان بود که خود به دنبال یادگیری لاتک بروند. مثالهای مختلفی نیز به صورت عملی نشان داده شد؛ منجمله مثالی از یک مقاله مرتبط با پردازش تصویر که با اجرای برنامه در MATLAB، به صورت خودکار جداول داده، نمودار و جداول تصویر مقاله بروزرسانی می‌شدند، نیز نمایش داده شد که حداقل از نظر خود من خیلی جالب بود.

    فایل PDF اسلایدها را از اینجـا و سورس لواپرشین آنها را می‌توانید از اینجــــــا دانلود نمایید.

    کارگاه زی‌پرشین در ۴۲ومین کنفرانس ریاضی

    تصویر روی دی‌وی‌دی مجموعه پارسی‌لاتک ۱۳۹۰ نسخه ۴۲ومین کنفرانس ریاضی ایران

    تصویر روی دی‌وی‌دی مجموعه پارسی‌لاتک ۱۳۹۰ نسخه ۴۲ومین کنفرانس ریاضی ایران

    چهارشنبه ۱۶ شهریور ۱۳۹۰، کارگاه زی‌پرشین در ۴۲ومین کنفرانس ریاضی ایران برگزار گردید. کارگاه در قالب دو گروه برگزار شد که برای هر گروه یک کلاس یک و نیم ساعته تئوری و یک کلاس عملی دو ساعته تشکیل شد.

    استقبال از کارگاه خوب بود و برخی از اساتید بنام ریاضی ایران نیز شرف حضور داشتند. قبل از برگزاری کنفرانس یک DVD شامل آخرین نسخه تک‌لایو ۲۰۱۱، راهنمای استفاده، نمونه مثالهایی از زی‌پرشین و برخی ابزارهای موردنیاز توسط گروه پارسی‌لاتک آماده شده بود که توسط کنفرانس ریاضی تکثیر و در اختیار شرکت کنندگان قرار گرفت.

    ادامه مطلب را از سایت پارسی‌لاتک بخوانید.

    شبکه‌های علمی

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

    ویژگی مشترک سایتهای فوق نمایش اطلاعاتی در خصوص مقالات منتشره توسط هر فرد می‌باشد. همه موارد فوق به جز Mendeley،‌ مقالات هر فرد را به صورت خودکار استخراج می‌کنند. با کلیک بر روی هر یک از تصاویر فوق، پروفایل من در سایت مربوطه را خواهید دید.  عموماً هر یک از سایتهای فوق موارد زیر را نمایش می‌دهند:

    • لیست مقالات ایندکس شده فرد،
    • تعداد مقالات ایندکس شده فرد،
    • همکاران فرد
    • تعداد ارجاعات به مقالات فرد

    در جدول زیر مقایسه‌ای بین ویژگیهای مختلف موارد فوق را آورده‌ام:

    Microsoft Academic Search Arnetminer DBLP Mendeley SOPUS
    اجازه تغییر مشخصات بله، اعمال پس از چند روز و بازبینی بله، اعمال بلافاصله خیر بله، بلافاصله بله، با تماس با ایمیل و پس از چند هفته
    H-index بله بله خیر خیر خیر
    تعداد ارجاعات به مقالات شما بله بله خیر خیر بله
    شبکه اجتماعی خیر بله خیر بله خیر
    رتبه‌بندی اشخاص بله بله خیر خیر خیر
    رتبه‌بندی مقالات بله بله خیر بله (بر اساس تعداد خواننده) خیر
    رتبه‌بندی کنفرانسها بلهبه همراه کنفرانسهای آتی بلهبه همراه IF و مواردی دیگر خیر خیر خیر

    جدول فوق برداشت شخصی من است. لطفاً اگر ایرادی دارد تذکر بدهید. سعی خواهم کرد به مرور جدول مقایسه را کامل‌تر کنم. برخی از موارد فوق امکانات جالبی دارند. نمودار تعداد مقالات فرد و تعدا مقالات ارجاع شده به وی در طی سالیان مختلف در Microsoft Academic Search  از آن جمله‌اند. Arnetminer نیز امکانات بسیار جالبی دارد از جمله نمودارهای مختلف مربوط به مقالات یک کنفرانس، مانند میزان ارجاعات به مقالات کنفرانس در طی سالیان مختلف، توزیع ملیت نویسندگان مقالات و .... Arnetminer همچنین یک گراف از شبکه اجتماعی شما و سایر همکارانتان ( و همکارانِ همکارانتان و...) تولید می‌کند که بسیار زیباست. (more…)

    Mendeley در سایر سایت‌هایتان

    Mendeley یک ابزار مدیریت مراجع بسیار خوب است که قبلاً هم در مورد آن نوشته‌ام. یکی از ویژگیهای جالب Mendeley امکان استفاده از پروفایلتان در Mendeley، در سایر سایت‌هاست. به عنوان مثال فرض کنید:۱) می‌خواهید لیست تألیفات خود را در سایت یا سایتهایی قرار دهید. یا ۲)‌ پروفایل لاتین خود را در سایتهای مختلفی داشته باشید.

    1. لیست تألیفات. اضافه کردن مقالات خودتان در Mendeley بسیار ساده است. کافیست مقالات خودتان را در قسمت My Publication قرار داده و تایید کنید که مقالات اثر خودتان هستند. اگر اینکار را در نسخه Desktop انجام داده‌اید باید آنرا با پروفایل خود در سایت Mendeley هماهنگ (Sync) کنید. حال لیست مقالات‌تان را در پروفایل خودتان خواهید داشت. به عنوان نمونه مقالات مرا می‌توانید در پروفایلم در Mendeley ببینید. امکان ارسال فایل مقاله به سایت Mendeley یا دادن لینک به محلی دیگر هم وجود دارد. مقالات کنفرانس و مجله گروه‌بندی شده و به صورت مناسبی نمایش داده می‌شوند. اگر خواسته باشید لیست تالیفات خود را در سایتی دیگر داشته باشید، کافیست پس از ورود به حساب کاربری خود در Mendeley، از لیست پایین افتادنی My Account در بالا و سمت راست صفحه، گزینه Edit My Profile را انتخاب نمایید. حال در سمت راست صفحه و در قسمت Embed profile widget، دکمه Embed را خواهید دید. پس از فشرن این دکمه و انتخاب فقط Publications و زدن دکمه پایان کدی در اختیار شما قرار خواهد گرفت که با قرار دادن آن در هر سایتی، لیست مقالات خود را در آن سایت ولی از Mendeley، خواهید داشت. هــــــــــــورا! از بروزرسانی تکراری لیست مقالات خود در سایتهای مختلف نجات پیدا کردید. (more…)

    سورس فورج و تحریم ایران (۲)

    قبلاً در این پست در خصوص تحریم ایران توسط سورس فورج (Sourceforge) و چگونگی دانلود از آن مطلبی نوشته بودم. امروز متوجه شدم که با استفاده از fasTun Tool و بدون هیچ دردسری، به راحتی می‌توان در فایرفاکس از سورس فورج دانلود نمود. کافیست افزونه fasTun را نصب نموده، قبل از ورود به سورس فورج، روی آیکون قرمز رنگ fasTun کلیک کنید تا فعال (سبز) ‌شود. حال دانلود کنید. به همین سادگی.

    پ.ن. ۱. به نظرم نیاز به ثبت‌نام در سایت fasTun دارید.
    پ.ن. ۲ برای code.google هم تا حدودی می‌توان از این افزونه استفاده کرد.

    RDoc

    Docutils سیستمی برای تولید مستندات فایلهای پایتون است که قبلاً نیز به آن و Sphinx اشاره‌ای داشته‌ام. به صورت مشابه RDoc سیستمی برای تولید خودکار مستندات از فایلهای Ruby است. استفاده از آن بسیار راحت است. کافیست توضیحات و مستندات فایلهای روبی خود را به صورت مناسب در داخل فایلهایتان بنگارید. یک فراخوانی RDoc در پوشه حاوی سورس فایلهای روبی شما، فایلهای HTML مربوطه را به صورت خودکار تولید خواهد کرد. لذت ببرید.

    حدیث صبر

    در این پست با احادیثی در مورد صبر در خدمت شما هستم و امیدورام که خداوند ما را از صابران قرار دهد.

    از رسولخدا (ص) سوال شد: آیا کسی بدون حساب وارد بهشت میشود ؟ پیامبر (ص) فرمود : آری هر ‏انسان مهربان و شکیبا بدون حساب وارد بهشت میشود.

    امام علی (ع) فرمودند: صبر یا بر مصیبت است ، یا بر اطاعت خدا ، یا در مقابل معصیت است ، که ‏قسمت سوم صبر که در مقابل معصیت است از دو قسمت قبلی با ارزش تر است.

    مشکلی با OpenCV

    در اجرای مثالهایی از OpenCV 2.0 در ویژوال استودیو که از تابع cvDestroyWindow استفاده شده بود با خطا مواجه می‌شدم و هر چه تلاش کردم به نتیجه نرسید تا اینکه OpenCV 2.1 را نصب کردم و مشکل برطرف شد.

    تجربه‌ای با Sphinx

    بروزرسانی صفخات وب یکی از معضلات من است. هر بار باید فایل HTML را باز نموده تغییراتی داده و آنرا آپلود نمایم. اگر فایل با میکروسافت ورد آماده شده باشد که حجم و متخلفات آن بسیار زیاد است. مدتی پیش برای آماده‌سازی صفحه وب مربوط به داده‌ها و پیاده‌سازیهای یکی از مقالاتم ترجیح دادم که آنرا به صورت دستی آماده نمایم تا با ورد. به این ترتیب حجم فایل بسیار کم شد. برای قرار دادن جداول لاتک مقاله‌ام هم یک اسکریپت SED نوشتم که کار بسی راحت شد.
    در آن مورد کارم راه افتاد ولی این مشکل برای مستندسازی فایلهای یک پروژه وجود دارد. یکی از راههای انجام چنین کاری استفاده از reStructured Text و استفاده از ابزاری همچون Sphinx برای تبدیل آنها به HTML یا LaTeX است.
    در جستو به این صفحه از سایت VanderLinden رسیدم که راهنمای خوبی در مورد تولید خودکار مستندات با استفاده از Mercurial, Sphinx, reStructured Text است. چون با راهنمایی‌های سایت مذکور به نتیجه رسیدم تصمیم گرفتم که آنرا در اینجا هم ذکر کنم. روش ذکر شده در آن در لینوکس است که من برخی مراحل را در اوبونتو چک کردم ولی تا آخر نرفتم. فقط یک نکته باید ذکر کنم که از آنجا که برخی از ملزومات اینکار در سورس‌فورج قرار دارد و نصب آنها در اوبونتو با مشکل مواجه می‌شود، باید آنها را جداگانه دانلود نمود و سپس نصب نمود. به نظرم بیشتر آنها با دستور خط فرمان python setup.py install نصب می‌شوند. فایلهای .egg‌هم با easy_install نصب می‌شوند. در ادامه به مراحل کار در ویندوز خواهیم پرداخت.
    به فرض python روی سیستم شما نصب شده است.

    نصب SPHINX، DOCUTILS و JINJA2
    Sphinx، Docutils و Jinja2 را از سایتهای مربوطه دانلود و نصب نمایید.

    نصب Mercurial
    در مورد Mercurial قبلاً پستی داشته‌ام. آنرا نصب نمایید.

    ایجاد یک مخزن 
    با دستور hg init mydox مخزنی به نام mydox ایجاد کنید. قرار است به محض commit کردن این مخزن، فایلهای HTMLی که بعداً ساخته می‌شوند به صورت خودکار و مبتنی بر فایلهای .rst بروزرسانی شوند. اکنون باید شاخه .hg را داشته باشید.
    من برای تست mydox را در همان شاخه Sphinx ایجاد کردم.

    پیکربندی SPHINX
    با دستور python sphinx-quickstart پیکربندی انجام می‌پذیرد. برای نام پروژه، نام مؤلف و شماره نسخه مواردی را خودتان درنظر بگیرید؛ تنظیمات پیش‌فرض را قبول کنید و تا انتها ادامه دهید. اکنون باید شاخه‌های source,build ایجاد شده باشند.

    ایجاد فایل RESTRUCTURED TEXT
    فایل ReSTی که قرار است مثلاً به HTML‌تبدیل شود را در شاخه source ایجاد نمایید. به فرض این فایل با نام  first_doc.rst و با محتویات زیر است:

    اکنون با استفاده از دستور python ..\sphinx-build.py source/ docs می‌توان خروجی HTML فایل rst. را در شاخه mydox/docs داشت.

    خودکارسازی تولید HTML در هنگام COMMIT
    اگر خواسته باشیم در هنگام commit کردن تغییرات توسط Mercurial، به صورت خودکار فایلهای HTML بروزرسانی شوند باید از precommit hook در Mercurial استفاده نمود.
    فایل mydox/.hg/hgrc را باز نمایید و خطوط زیر را به آن اضافه کنید (اگر این فایل نیست، ایجادش کنید):

    که در آن MYDOXPATH مسیر شاخه mydox است.
    فایل sphinxify_docs.bat را با محتویات زیر در شاخه mydox ایجاد کنید:

    cd MYDOXPATH
    python ..\sphinx-build.py source/ docs/

    حال اگر هر commitی در Mercurial انجام دهید، به شرطی که تغییری در فایلها داده باشید، HTML به صورت خودکار بروزرسانی خواهد شد:

    موارد دیگری هم در پست VanderLinden هست که می‌توانید به آن مراجعه نمایید. برای خودم که خیلی جالب بود، امیدورام برای شما هم مفید باشد.

    به عنوان یک نمونه سایت که از Sphinx استفاده کرده است، سری به سایت http://www.mathjax.org بزنید.

    میلاد حضرت صاحب‌الزمان (علیه‌السلام) مبارک باد

     از امام صادق علیه السّلام روایت شده که پدر بزرگوارشان در پاسخ کسی که از فضیلت شب نیمه شعبان از ایشان پرسیده بود فرمودند:

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

    کتابخانه جبرخطی Armadillo برای ++C

    همانگونه که می‌دانید ++C کتابخانهٔ ریاضی قوی ندارد. Armadillo یک مجموعه توابع برای جبرخطی در ++C فراهم کرده است.

    به همراه این کتابخانه مثالهایی هم هست که می‌توان اجرا نمود و لذت برد. برای بسیاری از عملیات ماتریسی MATLAB معادلی هم در آرمادیلو وجود دارد. گرچه که به گفته سایت آن، نیازی به LAPACK,BLASS نیست و این دو فقط برای افزایش کارایی می‌توانند در کنار آرمادیلو استفاده شوند، لیکن من در اجرای تابع solve آن با مشکل روبرو شدم که نیاز به LAPACK,BLASS داشت. روش رفع مشکل را در اینترنت نیافتم. خوشبختانه مشکل به صورتی که گفته خواهد شد قابل رفع است. اگر شما هم با چنین مشکلی مواجه شدید کافیست

    1. LAPACK,BLASS را از اینجا دانلود نموده و فایلها را باز کنید.
    2. سپس مسیرهای LAPACK و BLASS را به مسیر مورد جستجوی لینکر اضافه نمایید. به عنوان مثال در Code::Blocks در Project->Build Options->Search Directories->Linker
    3. فایل lapack_win32.lib را در قسمت تنظیمات لینکراضافه کنید.
    4. فایل config.hpp  در مسیر Armadillo PATH/include/armadillo_bits را باز نموده و دستور زیر را را از حالت انتخاب شده خارج نمایید:
    #define ARMA_USE_LAPACK