PDA

View Full Version : پیدا کردن 10 رنگ که در یک عکس بیشترین استفاده را داشته اند



mirza
شنبه 21 فروردین 1389, 20:55 عصر
سلام
با C# یا هر زبون دیگه ای

asefy2008
شنبه 21 فروردین 1389, 21:06 عصر
سلام باید از نمودار هیستوگرام استفاده کنی. این تکه کد می تونه راهت بندازه (البته امیدوارم):

public void Histogram_GrayScale()
{
for (int i = 0; i < Image.Width; i++)
for (int j = 0; j < Image.Height; j++)
{
GrayScale[Image.GetPixel(i, j).R]++;
}
}
موفق باشی

asefy2008
شنبه 21 فروردین 1389, 21:13 عصر
تصویر مورد استفاده در قطعه کد بالا GrayScale شده و GrayScale(البته این GrayScale با GrayScale قبلی فرق می کنه) هم یک آرایه شامل256 خونه هست که هر خونه معرف یک رنگ هست به این ترتیب با یک بار پیمایش آرایه مذکور می تونی براحتی 10 رنگ برتر رو بدست بیاری.
اگر هم تصویرت RGB هست بگو تا کد RGB رو هم بدم

mirza
چهارشنبه 25 فروردین 1389, 12:46 عصر
سلاسم مرسی از راهنماییت

تصویرم RGB هست

اکه امکان داره کدشو برام بزار ممنون

asefy2008
چهارشنبه 25 فروردین 1389, 20:12 عصر
دوست عزیز من زیاد در این مورد که روی تصویر RGB یا Grayscale کار کنم با دوستام مشورت کردم و نظر اون ها به عنوان یک حرفه این بود که با تصاویر RGB رو به Grayscale تبدیل کن و بعد کارت رو روشون انجام بده. حالا هر جور میل شماست اینم کد:


private void Histogram_RGB()
{
for (int i = 0; i < Image.Width; i++)
for (int j = 0; j < Image.Height; j++)
{
Red[Image.GetPixel(i, j).R]++;
Green[Image.GetPixel(i, j).G]++;
Blue[Image.GetPixel(i, j).B]++;
}
}

البته شاید روش من هم مناسب نباشه(منم تازه کارم)

mirza
پنج شنبه 26 فروردین 1389, 21:02 عصر
مرسی
ولی نهایتا چطوری از این 3 تا آرایه 10 تا رنگ اصلیو بکشیم بیرون؟