ورود

View Full Version : اشکال در شمارش پیکسلها



lord_viper
یک شنبه 13 آبان 1386, 16:12 عصر
از کد زیر برای مقایسه پیکسلهای دو بخش از یک تصویر استفاده میکنم
function calculator(z,x,c,v:integer):integer;
var
g,h,o:integer;
begin
o:=0;
for g:=1 to i do
begin
for h:=1 to j do
begin
if a.Canvas.Pixels[z+g,x+h]=a.Canvas.Pixels[c+g,v+h]then
o:=o+1;
end;
end;
result:=o;
end;
که i,j طول و عرض منطقه محاسبه i1,i2 مختصات شروع قسمت اول و j1,j2 مختصات شروع قسمت دوم میباشد البته قبل از انتخاب قتمتها عکس به تعداد مورد نظر تقسیم میشود که با کلیک موس میتوان دو منطقه را انتخاب نمود ولی در هر بار اجرا مقادیر خروجی متفاوت میباشد
اشکال از کجاست؟
با تشکر

مصطفی ساتکی
سه شنبه 15 آبان 1386, 00:19 صبح
سلام دوست عزیز
این چیزی که شما روش مشکل دارید بیشتر شبیه یک شبه کد تا یک function صحیح که بشه جواب کاملی به شما داد.
این کدی که شما آوردین مشکلی نداره اگه کامپایلر هم مثل ما بعضی از خطاهاشو صرف نظر کنه تعداد پیکسل هایی که اختلاف دارن رو بر می گردونه حالا شما چی از جون این تابع خواید رو مشخص کنید تا جواب مفصلی دریافت کنید.

lord_viper
جمعه 18 آبان 1386, 07:48 صبح
سلام دوست عزیز
این چیزی که شما روش مشکل دارید بیشتر شبیه یک شبه کد تا یک function صحیح که بشه جواب کاملی به شما داد.
این کدی که شما آوردین مشکلی نداره اگه کامپایلر هم مثل ما بعضی از خطاهاشو صرف نظر کنه تعداد پیکسل هایی که اختلاف دارن رو بر می گردونه حالا شما چی از جون این تابع خواید رو مشخص کنید تا جواب مفصلی دریافت کنید.
با سلام
فانکشنش که مشکلی نداره مشکل از جواب خروجیه
یعنی من بهش میدم بخش 1 رو با 3 مقایسه کنه انجام میده ومیگه 12000 پیکسل مشابه داره دو باره بهش میدم بخش 1 رو با 3 مقایسه کن میگه 10000 پیکسل مشابه داره و بعضی وقتا هم میگه 8320 پیکسل مشابه خب اختلاف اون هم به اندازه 2000 تا 4000 پیکسل فکر کنم یه کم زیاد باشه
نمیدونم مشکل از کجاست