B O L O T
02-08-2007, 14:12
مقایسه ی دو عکس
این تاپیک در جهت بحث بر روی روش های مختلف مقایسه ی دو تصویر و در نهایت انتخاب بهترین روش برای پیاده سازی این کار ایجاد گردیده است .
در اینجا دو روش برای مقایسه ی دو عکس با یکدیگر بیان میشوند ، اما قبل از اعمال هر یکی از دو روش ابتدا میبایست اندازه ی دو تصویر چک شوند و در صورتی که اندازه ی آنها یکی نبودند به سرعت متوجه خواهیم شد که این دو تصویر با یکدیگر تفاوت دارند .
راه اول :
بعد از چک نمودن سایز دو تصویر ، ما از طریق تابع GetPixel مربوط به کلاسBitmap هر یک از پیکسلهای تصویر اول را با پیکسل نظیر در تصویر دوم مقایسه میکنیم و در صورتی که حتی یک پیکسل از دو تصویر با یکدیگر برابر نبودند ، دو تصویر نیز با یکدیگر یکی نخواهند بود ، حال به کد زیر توجه کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما باید توجه داشت که اعمال این روش در جهت مقایسه ی دو تصویر وقت گیر میباشد ، لذا میتوانیم از روش دیگری استفاده نماییم .
راه دوم :
در این روش میبایست از مقایسه ی مقدار Hash شده ی دو تصویر با یکدیگر استفاده نماییم . الگوریتمهای Hash متنوعی در فضای نام System.Security.Cryptography فراهم آورده شده اند . در اینجا ما از کلاس SHA256Managed در جهت پیاده سازی الگوریتم SHA1 استفاده خواهیم نمود . متد ComputeHash مربوط به این کلاس آرایه ای از بایت را به عنوان پارامتر ورودی دریافت و مقدار Hash شده ی 256 بیتی از داده ی مورد نظر را تولید مینماید . بدین ترتیب با Hash نمودن دو تصویر مورد نظر و مقایسه ی آنها با یکدیگر میتوانیم به یکی بودن دو عکس با یکدیگر پی ببریم .
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این تاپیک در جهت بحث بر روی روش های مختلف مقایسه ی دو تصویر و در نهایت انتخاب بهترین روش برای پیاده سازی این کار ایجاد گردیده است .
در اینجا دو روش برای مقایسه ی دو عکس با یکدیگر بیان میشوند ، اما قبل از اعمال هر یکی از دو روش ابتدا میبایست اندازه ی دو تصویر چک شوند و در صورتی که اندازه ی آنها یکی نبودند به سرعت متوجه خواهیم شد که این دو تصویر با یکدیگر تفاوت دارند .
راه اول :
بعد از چک نمودن سایز دو تصویر ، ما از طریق تابع GetPixel مربوط به کلاسBitmap هر یک از پیکسلهای تصویر اول را با پیکسل نظیر در تصویر دوم مقایسه میکنیم و در صورتی که حتی یک پیکسل از دو تصویر با یکدیگر برابر نبودند ، دو تصویر نیز با یکدیگر یکی نخواهند بود ، حال به کد زیر توجه کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما باید توجه داشت که اعمال این روش در جهت مقایسه ی دو تصویر وقت گیر میباشد ، لذا میتوانیم از روش دیگری استفاده نماییم .
راه دوم :
در این روش میبایست از مقایسه ی مقدار Hash شده ی دو تصویر با یکدیگر استفاده نماییم . الگوریتمهای Hash متنوعی در فضای نام System.Security.Cryptography فراهم آورده شده اند . در اینجا ما از کلاس SHA256Managed در جهت پیاده سازی الگوریتم SHA1 استفاده خواهیم نمود . متد ComputeHash مربوط به این کلاس آرایه ای از بایت را به عنوان پارامتر ورودی دریافت و مقدار Hash شده ی 256 بیتی از داده ی مورد نظر را تولید مینماید . بدین ترتیب با Hash نمودن دو تصویر مورد نظر و مقایسه ی آنها با یکدیگر میتوانیم به یکی بودن دو عکس با یکدیگر پی ببریم .
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید