PDA

View Full Version : تشخیص متن زیر ماوس



kezack
شنبه 22 دی 1386, 11:04 صبح
میخوام برنامه ای بنویسم که در هر پنجره ای خارج از محط اجرا وقتی مکان نما روی یه کلمه ای رفت بتونه اونو تشخیص بده و در یک tooltip نمایش بده ممنون میشم اگه در این زمینه راهنماییم کنید

kezack
شنبه 22 دی 1386, 14:53 عصر
با سلام این کد نمونه کل متن را بر می گردونه چه جوری می تونم یک کلمه ازونو بر گردونم و روی pdf و word هم کار کنه

vcldeveloper
شنبه 22 دی 1386, 22:35 عصر
قبلا در این بخش درباره اش بحث شده. کلمه Babylon را در همین بخش دلفی جستجو کنید.

Delphi Coder
دوشنبه 24 دی 1386, 02:53 صبح
موضوع جالبیه. من جستجو کردم ولی متاسفانه هیچیک از تاپیک ها به یه نتیجه واضح که بشه ازش استفاده کرد نرسیده.

Inprise
دوشنبه 24 دی 1386, 15:35 عصر
در هر پنجره ای خارج از محط اجرا وقتی مکان نما روی یه کلمه ای رفت بتونه اونو تشخیص بده

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

Delphi Coder
سه شنبه 25 دی 1386, 02:02 صبح
ممنون از توضیحتون جناب Inprise. هر چند که جنبه تئوری داشت ولی خیلی مفید بود. من یه نگاه اجمالی و نه چندان دقیق روی DLL دیکشینری babylon داشتم به نظر میاد یکی از روشهای اون برنامه اینه که توابع API مثل TextOut و از این قبیل رو HOOK میکنه و با فرستادن WM_PAINT کلمات تور میکنه. یه table نسبتا بزرگ هم داره که به نظر تو روتینهای OCR استفاده کرده(که البته مطمئن نیستم). ولی اینو میدونم به ندرت از OCR استفاده میکنه چون ضریب خطای اون بالاس(با یه تست کوچیک تو pait حتی با پرکاربردترین font ها معلومه). به هرحال اگه بازم یه وقت سورس کد یا مقاله خوبی به چشمتون خورد ما رو فراموش نکنید.

Mahmood_M
سه شنبه 25 دی 1386, 12:03 عصر
به هرحال اگه بازم یه وقت سورس کد یا مقاله خوبی به چشمتون خورد ما رو فراموش نکنید.
در مورد OCR جناب ذولقدری ، مطالب مفیدی نوشتن ...

در این لینک (http://barnamenevis.org/forum/showthread.php?t=40433) میتونید مشاهده کنید ، موفق باشید ...

Delphi Coder
سه شنبه 25 دی 1386, 15:19 عصر
واقعا عالی بود. مرسی