PDA

View Full Version : مقایسه دو تصویر خیلی هم حیاتی



Danial_Yousefi
چهارشنبه 07 فروردین 1387, 19:06 عصر
من نمونه کد یا الگوریتمی می خوام که دو تصویر را با هم مقایسه کنه و درصد شباهتشونو بگه ولی نمی خوام از روش مقایسه ی پیکسل به پیکسل این کارو انجام بده چون ممکنه عکس دوم کمی چرخیده باشه یه از زاویه دیگری گرفته شده باشه از استادان و برو بچز تقاضا دارم که اگر میتونند کمک کنند دریغ نکنند ممنون :بوس: :متفکر:

مهران رسا
چهارشنبه 07 فروردین 1387, 22:45 عصر
بهتر بود قبلش یه جستجوی کوچولو می کردید :

این دقیقاً همون چیزی هست که شما لازم دارید .

موفق باشید

Danial_Yousefi
پنج شنبه 08 فروردین 1387, 01:15 صبح
نه عزیز من اینو 3 روز پیش دانلود کردم ولی اصلا به دردم نخورد چون پیکسل به پیکسل مقایسه میکنه خودم درستش کردم ریختم عکسو رو آرایه خفنش کردم ولی باز به دردم نمیخوره چون RGB پیکسل به پیکسل مقایسه میکنه اگه چیز دیگه ای هست لطف کنید بدید

vbhamed
پنج شنبه 08 فروردین 1387, 11:52 صبح
سلام
من دارم ولی حجمش زیاده
ضمنا رایگان هم نیست

Mbt925
پنج شنبه 08 فروردین 1387, 12:01 عصر
پردازش تصویر الان یکی از مباحث فوق العاده با ارزش و مهم و سنگینیه که تو جهان داره روش کار میشه.

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

باید در این زمینه مطالعه کنید.

مهران رسا
پنج شنبه 08 فروردین 1387, 14:07 عصر
آهان ....

به قول آقای mbt925 این مبحث خیلی پیشرفته میشه . باید خودت یه الگوریتم واسه اینکار پیدا کنی .
به نظر من می تونی از همون روش پیکسل به پیکسل استفاده کنی ، با این تفاوت که به جای اینکه شرط همانند بودن تصاویر رو 100% قرار بدی ، بگی اگه 70 % هم شبیه بودن امکان تشابه رو اعلام کنه ...

ali_habibi1384
شنبه 10 فروردین 1387, 14:19 عصر
توسط تابع point نقاط رو در یک ماتریس دو بعدی ذخیره کنید و سپس تصیویر ذخیره شده رو بیت به بیت با تصویر جدید مقایسه کنید.

Danial_Yousefi
یک شنبه 11 فروردین 1387, 12:18 عصر
با سلام خدمت آقای حبیبی من اگر بخوام تصویر بریزم رو آرایه خجالت آوره که از point استفاده کنم من از getbitmapbits و setbitmapbits استفاده می کنم ولی همون تور که گفتم نباید پیکسلی باشه

ali_habibi1384
یک شنبه 11 فروردین 1387, 20:59 عصر
سلام آقای دانیال یوسفی . من فقط راهنمایی کردم شاید راه های بهتری هم باشه من فقط یکی از راهها رو پیشنهاد کردم شما می تونید استفاده کنید یا نکنید .

اوبالیت به بو
دوشنبه 12 فروردین 1387, 14:26 عصر
توسط تابع point نقاط رو در یک ماتریس دو بعدی ذخیره کنید و سپس تصیویر ذخیره شده رو بیت به بیت با تصویر جدید مقایسه کنید.
چی جوری تویه ماتریس بریزه؟ میشه توضیح بدین.
ممنون

Danial_Yousefi
دوشنبه 12 فروردین 1387, 17:10 عصر
'Create a new project, add a command button and a picture box to the project, load a picture into the picture box.
'Paste this code into Form1
Private Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Dim PicBits() As Byte, PicInfo As BITMAP
Dim Cnt As Long, BytesPerLine As Long
Private Sub Command1_Click()

'Get information (such as height and width) about the picturebox
GetObject Picture1.Image, Len(PicInfo), PicInfo
'reallocate storage space
BytesPerLine = (PicInfo.bmWidth * 3 + 3) And &HFFFFFFFC
ReDim PicBits(1 To BytesPerLine * PicInfo.bmHeight * 3) As Byte
'Copy the bitmapbits to the array
GetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)

'Set the bits back to the picture
SetBitmapBits Picture2.Image, UBound(PicBits), PicBits(1)
'refresh
Picture2.Refresh
End Sub

ali_habibi1384
چهارشنبه 14 فروردین 1387, 11:12 صبح
در جواب آقای obalijoon
کلیه عکسهای bitmap از یک آرایه دو بعدی از رنگها ساخته شده اند که شما می تونید رنگ عکس مورد نظرتون رو پیکسل به پیکسل خوانده و در جایی ذخیره کنید . الآن پروژه آماده در این رابطه در دسترسم نیست در اسرع وقت یک نمونه واستون می زارم.