PDA

View Full Version : ضرب مقدار پیکسلهای تصویر در یک عدد اسکالر



tiyam123
دوشنبه 28 اسفند 1391, 18:20 عصر
سلام
خروجی تابع ()getpixel از نوع color هستش، من میخوام خروجی این تابعو توی یه عدد از نوع double ضرب کنم، امکانش هست؟ اگه هست چه جوری؟

C#‎_best_Programmer
دوشنبه 28 اسفند 1391, 19:48 عصر
سلا م داش عیدت مبارک اره میشه همونطور که میدونی هرنگ تشکیل شده از سه تا رنگ اصلی


Color c=GetPixel(x,y
Color c2=new Color(c.r*5,c.g*5,c.B*5
)

tiyam123
دوشنبه 28 اسفند 1391, 20:35 عصر
سلا م داش عیدت مبارک اره میشه همونطور که میدونی هرنگ تشکیل شده از سه تا رنگ اصلی


Color c=GetPixel(x,y
Color c2=new Color(c.r*5,c.g*5,c.B*5
)
راستش من میخوام کد این فرمولو بنویسم:
http://upload.tehran98.com/img1/at8se6laxchei8hnp6.png
که z مقدار پیکسل تصویر توی نقطه ی i و j هستش! این کدو براش نوشتم:

public double c(int n, int m)
{
double p = 0;
int a, b;
a = Int32.Parse(newimg.Height.ToString());
b = Int32.Parse(newimg.Width.ToString());
for (int i = 0; i <= a; i++)
{
for (int j = 0; j <= b; j++)
{
p = p + (newimg.GetPixel(i,j)*P(m, ((2 * i) / a - 1)) * P(n, ((2 * j) / b - 1)));
}
}
p = (((2 * m) + 1) * ((2 * n) + 1)) / ((Int32.Parse(newimg.Height.ToString()) * (Int32.Parse(newimg.Width.ToString())))) * p;
return p;
}
تابع P یه مقدار double رو برمیگردونه! حالا مشکل من اینه که نمیدونم به جای ( z(i,jچی رو بذارم داخل کد! داخل کدی که اینجاس به جاش گذاشتم (newimg.GetPixel(i,j، که newimg هم تصویرمه!ولی میدونم که اشتباس! کسی میتونه کمکم کنه؟!

plus
دوشنبه 28 اسفند 1391, 21:46 عصر
دوست عزیز پیکسل رنگی در سیستم RGB سه مولفه داره (Red, Green, Blue).خوب حالا شما کدومش رو میخوای جای z بگذاری؟ این بستگی به کار فرمول داره.اگه نیاز، مقداری روشنایی (Intensity) پیکسل هست (و رنگش مهم نیست)، میتونید از سه مشخصه R، G و B میانگین بگیرید:

...
Color color = newimg.GetPixel(i,j);
double intensity = (color. R + color.G + color.B) / 3.0;
p = p + intensity*P(m, ((2 * i) / a - 1)) * P(n, ((2 * j) / b - 1)));
...

C#‎_best_Programmer
دوشنبه 28 اسفند 1391, 22:07 عصر
عزیزم فک کنم تو می خوای نقاط بدست بیاری بید توی رویداد موس موو بزنی


int x=e.x;
iny y=e.y

tiyam123
دوشنبه 28 اسفند 1391, 22:47 عصر
دوست عزیز پیکسل رنگی در سیستم RGB سه مولفه داره (Red, Green, Blue).خوب حالا شما کدومش رو میخوای جای z بگذاری؟ این بستگی به کار فرمول داره.اگه نیاز، مقداری روشنایی (Intensity) پیکسل هست (و رنگش مهم نیست)، میتونید از سه مشخصه R، G و B میانگین بگیرید:

...
Color color = newimg.GetPixel(i,j);
double intensity = (color. R + color.G + color.B) / 3.0;
p = p + intensity*P(m, ((2 * i) / a - 1)) * P(n, ((2 * j) / b - 1)));
...

واقعا ممنون، همین مقدار روشنایی رو میخواستم... لطف کردین.

tiyam123
دوشنبه 28 اسفند 1391, 22:48 عصر
عزیزم فک کنم تو می خوای نقاط بدست بیاری بید توی رویداد موس موو بزنی


int x=e.x;
iny y=e.y

ممنون بزرگوار، جوابمو گرفتم.