نمایش نتایج 1 تا 17 از 17

نام تاپیک: پردازش تصویر در دلفی

  1. #1
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    Smile پردازش تصویر در دلفی

    با سلام خدمت دوستان برنامه نویس
    من در تالار که جست و جو کردم درمورد پرردازش تصویر کد های خوبی بود اما هیچ کدام برای دلفی نبود بعد خودم هم برای کاری نیاز به پردازش تصویر با کمترین زمان ممکن نیاز داشتم.
    حالا تا جا های خوبی پیش رفتم.
    از شما دوستان سوالی دارم امیدوارم کمکم کنید تا بتوانم مشکلم را حل کنم و بقیه دوستان هم بهره ببرند.
    سوال من این است که:
    من 2 تا تصویر رو میخوام مقایسه کنم برای اینکه سرعت بالاتر بره اون ها رو تبدیل به سیاه و سفید میکنم.(البته با سیاه و سفید کردن بسیاری از جزئیات حذف میشه و 2 تصویر خیلی شبیه هم میشن)
    برنامه ای که نوشتم به طور تقریبا دقیق 2 تصویر رو به تکه های کوچکتر مثلا 10*10 پیکسل تبدیل میکنه و با scanline کردن و با فرمان compare اون ها رو مقایسه میکنم و در حدود 900 ms طول میکشه که مقایسه درصدی نشون بده.حالا به نظر شما از چه راهی استفاده کنم تا بتونم سرعت رو بالا ببرم و زمان کاهش پیدا کنه(حدود 200 ms )؟

    روش پیکسل به پیکسل خوبه ولی در تصویری به مقیاس 1024*726 پیکسل حدود 9800 ms طول میکشه.
    اگر کمکم کنید بسیار ممنون دار شما میشوم.
    آخرین ویرایش به وسیله ابوالفضل عباسی : سه شنبه 17 شهریور 1394 در 17:32 عصر دلیل: اشتباه املایی

  2. #2

    نقل قول: پردازش تصویر در دلفی

    سلام.
    در همین تالار دلفی آقای عباسی چندین پست پردازش با همین دلفی گذاشتند، چطور گشتید و ندیدید؟
    برای مقایسه دو تصویر نیازی به تکه پاره کردنش نیست. مگر اینکه بخواهید اون قسمت مورد اختلاف رو در فایل های مجزا داشته باشید.
    بهترین روش مقایسه خطی افقی همون اسکن لاینه، مگر اینکه روشتون چیز دیگه باشه که باید براش یونیت مجزا بنویسید، زیاد سخت هم نیست.
    یادمه در کاری این مقایسه رو انجام می دادم خیلی کم طول می کشید، تمام تصاویر رو درسته با هم مقایسه کنید و اون رو ریز ریز نکنید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  3. #3
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: پردازش تصویر در دلفی

    ممنونم از پاسختون
    دیدم از اون ها کمک گرفتم ولی کمک چندانی بهم نکرد.
    ببخشید حاج یوسف عزیز من اگر بخوام با فرمان scanline کل عکس رو مقایسه کنم زمانش کمی کمتر از پیکسل به پیکسل میشه. من هم عکس هارو تیکه تیکه میکنم تا هم نقاط اختلاف رو نشون بدم و هم سرعت scanline بالا بره.بعد به خاطر این تصویر و سیاه و سفید میکنم چون اگر در کسری از ثانیه 2 عکس بگیرم در نور زمینه و سایه ها تفاوت رخ میده و این 2 عکس از نظر ظاهر شبیه اند ولی از نظر باطن متفاوت اند. برای اینکه مطمئن شوم که این 2 عکس پیکسل هاش فرق کرده 2 عکس رو روهم مچ میکنم می بینم خیلی فرق کرده.
    حالا اگر شما روش بهتری سراغ دارید ممنون میشوم میتونم براتون پروژه ام رو بگذارم اما بهتره کمک ها تون رو اجرا کنم بعد برای اینکه همه داشته باشن پروژه رو می گذارم

  4. #4

    نقل قول: پردازش تصویر در دلفی

    با سلام،
    من قبلاً در دموی کامپوننتهای imageen دیده بودم که نتیجه تفاوت دو تصویر رو به صورت درصد نشون میداد. پس میتونید برای این کار از کامپوننت های imageen هم استفاده کنید.
    موفق باشید.

  5. #5
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: پردازش تصویر در دلفی

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

  6. #6
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پردازش تصویر در دلفی

    میتونید برای مقایسه تصاویر از دستور scanline استفاده کنید
    برای تصویر 800*600 حدود یک دهم ثانیه زمان میبره

    procedure TForm1.Button1Click(Sender: TObject);
    var
    b1, b2: TBitmap;
    c1, c2: PByte;
    x, y, i,
    different: Integer; // Counter for different pixels
    begin
    b1 := Image1.Picture.Bitmap;
    b2 := Image2.Picture.Bitmap;
    Assert(b1.PixelFormat = b2.PixelFormat); // they have to be equal
    different := 0;
    for y := 0 to b1.Height - 1 do
    begin
    c1 := b1.Scanline[y];
    c2 := b2.Scanline[y];
    for x := 0 to b1.Width - 1 do
    for i := 0 to BytesPerPixel - 1 do // 1, to 4, dep. on pixelformat
    begin
    Inc(different, Integer(c1^ <> c2^));
    Inc(c1);
    Inc(c2);
    end;
    end;
    end;

  7. #7
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: پردازش تصویر در دلفی

    ممنون از پاسخ شما
    از این خواستم استفاده کنم اما هرچه که به جای BytesPerPixel باز هم اشتباه تشخیص میداد الان خودم یکی نوشتم که با scanline کار کنه ولی خیلی زمان می بره

  8. #8

    نقل قول: پردازش تصویر در دلفی

    نقل قول نوشته شده توسط delphi-xe7 مشاهده تاپیک
    ممنون از پاسخ شما
    از این خواستم استفاده کنم اما هرچه که به جای BytesPerPixel باز هم اشتباه تشخیص میداد الان خودم یکی نوشتم که با scanline کار کنه ولی خیلی زمان می بره
    مگه بچه ها علم غیب دارند. خوب کدتو بزار ببینیم چی نوشتی.
    اینقدر تو گزاشتن کد خساست به خرج میدی ، که واسه سوال خودت هم میترسی کد بزاری.

  9. #9
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: پردازش تصویر در دلفی

    چشم نیازی به تندگویی نیست میگذارم
    برای کار با این برنامه عکس هایی که میخوان مقایسه بشن انتخاب میکنید بعد روی convert bmp to Line 2 کلیک کنید (از اولی استفاده نکنین چون مشکل داره)بعد روی compare کلیک کنید تا مقایسه کنه
    در تصویر وسطی در پایین نقاطی که باهم اختلاف دارند رو سفید نشون میده و در تصویر سمت چپ پایینی نقاط دون دون نقاطی که مشابه اند رو نشون میده.
    خوشحال میشم نظرتون رو درباره روش کد نویسیم بهم بدین.
    عکس هاتون باید حتما bitmap باشه.
    http://s6.picofile.com/file/82116649...Image.zip.html

  10. #10

    Lightbulb نقل قول: پردازش تصویر در دلفی


    function TimeGetTime: DWord; stdcall; external 'winmm.dll' name 'timeGetTime';


    function GetPixelSize(informat: TPixelFormat): Integer;
    begin
    case informat of
    pf8bit: Result := 1;
    pf16bit: Result := 2;
    pf24bit: Result := 3;
    pf32bit: Result := 4;
    else
    Result := 0;
    end;
    end;


    function BitmapsAreSame(Bitmap1, Bitmap2: TBitmap): Boolean;
    var
    scanptr1, scanptr2: pointer;
    i: integer;
    PixelSize: byte;
    begin
    Result := false;
    if (Bitmap1.Width = Bitmap2.Width) and
    (Bitmap1.Height = Bitmap2.Height) and
    (Bitmap1.PixelFormat = Bitmap2.PixelFormat) then
    begin
    PixelSize := GetPixelSize(Bitmap1.PixelFormat);
    for i := 0 to (Bitmap1.Height-1) do
    begin
    scanptr1 := Bitmap1.ScanLine[i];
    scanptr2 := Bitmap2.ScanLine[i];
    Result := CompareMem(scanptr1, scanptr2, Bitmap1.Width*PixelSize);
    if Result = false then break;
    end;
    end;
    end;


    procedure TForm1.BitBtn1Click(Sender: TObject);
    TF:Boolean;
    begin
    TF := BitmapsAreSame(Image1.Picture.Bitmap, Image2.Picture.Bitmap);
    end;
    آخرین ویرایش به وسیله دلفــي : یک شنبه 22 شهریور 1394 در 12:42 عصر

  11. #11

    نقل قول: پردازش تصویر در دلفی

    سلام

    این نمونه آخر اصلا برای محاسبه زمان اجرا روش دقیقی نیست و باید از توابع high resolution استفاده کنید!!!

    و اما شما دوست عزیز که میخوای پردازش تصویر کار کنید. بیخیال دلفی شده زبان C++‎ رو انتخاب کنید و هم از سرعت به مراتب بهترش در این زمینه لذت ببرید و هم کتابخونه های مثل opencv.

    روز خوش

  12. #12
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: پردازش تصویر در دلفی

    با سلام
    تشکر از پاسختون
    ولی یکی مثل من که با دلفی سالیان سال کار کرده سخته بره C++‎‎‎‎ یادبگیره.
    بعدش هم الان سرعت برنامه خیلی بالا هست و به 2 ثانیه هم کشیده نمی شود.این زمان برای من خوبه ولی چون کاری که دارم به صدم ثانیه مربوط هست میخواستم سرعتش بالاتر بره.
    امیدوارم با دوستانی که هستند بتونم مشکلم رو حل کنم و هم من فیض ببرم و هم شما دوستان از این برنامه فیض ببرید

    دوست عزیز اقای دلفی کدی که فرستادید عالی بود و خوشم اومد تنها یک عیب برای من داشت(شاید برای دیگران نداشته باشد)من عکس ها رو تکه تکه میکنم تا از نظر درصدی نشون بدم چقدر شبیه هم هستند. ولی این در بعضی از مواقع درست نشون میداد و بعضی مواقع اشتباه
    بعد هم وقتی تکه تکه میکنم کد شما با کد من از نظر زمانی یکسان می شوند.(ببخشیدا تازه کد خودم از نظر زمانی بهتر عمل میکند).
    ولی از توجهی که به سوالم کرده اید ممنونم
    آخرین ویرایش به وسیله ابوالفضل عباسی : یک شنبه 22 شهریور 1394 در 13:00 عصر

  13. #13

    Lightbulb نقل قول: پردازش تصویر در دلفی


  14. #14
    کاربر دائمی آواتار ابوالفضل عباسی
    تاریخ عضویت
    شهریور 1393
    محل زندگی
    Inside Esfahan
    پست
    719

    نقل قول: پردازش تصویر در دلفی

    اگر این برنامه رو شما نوشته اید بسیار بسیار عالی هستش
    میتونید بگویید با چه روشی عکس ها رو مقایسه میکند(یا حتی کدش رو بدهید)؟
    ولی تنها یک مشکل دارد در تصاویر که خیلی با هم فرق وجود دارد درصدی که نشان میدهد خیلی بالاهستش(اما از نظر زمانی ایده آل هستش)
    اگر میشود کدش رو برای من و دوستان قرار دهید و یا به این ایمیل بفرستید
    programmer9001@gmail.com

  15. #15

    نقل قول: پردازش تصویر در دلفی

    نقل قول نوشته شده توسط delphi-xe7 مشاهده تاپیک
    اگر این برنامه رو شما نوشته اید بسیار بسیار عالی هستش
    میتونید بگویید با چه روشی عکس ها رو مقایسه میکند(یا حتی کدش رو بدهید)؟
    ولی تنها یک مشکل دارد در تصاویر که خیلی با هم فرق وجود دارد درصدی که نشان میدهد خیلی بالاهستش(اما از نظر زمانی ایده آل هستش)
    اگر میشود کدش رو برای من و دوستان قرار دهید و یا به این ایمیل بفرستید
    programmer9001@gmail.com
    دوستمون از کامپوننت ImageEn استفاده کرده، سرچ کن شاید sample هم داشته باشه!

  16. #16

    نقل قول: پردازش تصویر در دلفی

    نقل قول نوشته شده توسط delphi-xe7 مشاهده تاپیک
    اگر این برنامه رو شما نوشته اید بسیار بسیار عالی هستش
    میتونید بگویید با چه روشی عکس ها رو مقایسه میکند(یا حتی کدش رو بدهید)؟
    ولی تنها یک مشکل دارد در تصاویر که خیلی با هم فرق وجود دارد درصدی که نشان میدهد خیلی بالاهستش(اما از نظر زمانی ایده آل هستش)
    اگر میشود کدش رو برای من و دوستان قرار دهید و یا به این ایمیل بفرستید
    programmer9001@gmail.com
    از کامپوننت ImageEn كمك بگيريد

  17. #17
    کاربر دائمی آواتار khorsandreza
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تبریز
    پست
    776

    نقل قول: پردازش تصویر در دلفی

    نقل قول نوشته شده توسط دلفــي مشاهده تاپیک
    سلام بر دوستان هرجند اززمان این تاپیک خیلی گذشته ولی چون سوالم در این رابطه بود دوباره فعال کردم من روش مقایسه EmagEn را دیدم و ازان بسورت تستی استفاده کردم ولی من می خواهم مقایسه را در سطح اطلاعات بیشتر بررسی کنم من تفداد زیادی عکس دارم (حدود 250 هزار فقطعه) که با استفاده از File Table مدیریت می کنم و کارهایم را انجام میدهم . داخل این عکس ها تکراری است حال می خواهم وقتی کاربر تصویری را انتخاب کرد سیستم کل تصاویر ذخیره شده قبل را بررسی کنه بگه قبلا از این تصویر در سیستم ثبت شده .

تاپیک های مشابه

  1. آموزش: آموزش ها و نمونه برنامه های پردازش تصویر در دلفی
    نوشته شده توسط بهروز عباسی در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 27
    آخرین پست: شنبه 01 خرداد 1395, 08:50 صبح
  2. درخواست کمک : دریافت تصویر از وب کم جهت پردازش تصویر - در دلفی 2011
    نوشته شده توسط ali_reza_nazari در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 13
    آخرین پست: یک شنبه 06 آذر 1390, 00:37 صبح
  3. کسی با فیلتر سوبل برای تشخیص لبه در پردازش تصویر استفاده کرد
    نوشته شده توسط masoode در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: پنج شنبه 30 اردیبهشت 1389, 08:43 صبح
  4. اسکن تصویر در دلفی چگونه است نیاز به component
    نوشته شده توسط hemmat در بخش برنامه نویسی در Delphi
    پاسخ: 12
    آخرین پست: پنج شنبه 12 آبان 1384, 21:06 عصر
  5. پردازش تصویر
    نوشته شده توسط javidtaheri در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: پنج شنبه 04 تیر 1383, 10:01 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •