رفتن به مطلب
  • 0

شمارش پیکس هایی که به رنگ قرمز هستند


مسعود دلفان آذری

سوال

سلام دوستان؛

چجوری میتونم توو یک عکس، تعداد پیکسل هایی که به رنگ قرمز هستند رو بشمرم؟

تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

اینکه چه بازه ای رو قرمز در نظر بگیرید به خودتون مربوطه ولی اگر رنگ قرمز خالص منظورتون باشه، باید R=255 و G و B برابر صفر باشه. هر چی به این حالت نزدیک تر باشید، به رنگ قرمز نزدیک تر میشید.

برای گرفتن تک تک پیسکل ها باید یک حلقه تو در تو به اندازه طول و عرض عکسی که تصویر مورد نظر رو داخلش لود کردید بنویسید و داخلش با استفاده از bitmap.getpixel مربوط به بیتمپ اون تصویر، چک کنید که چه رنگی داره. برای تبدیل رنگ به صورت RGB هم باید از لینک زیر، استفاده کنید.

B4X - Rapid Application Development tools for Android, iOS and desktop applications

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، razavioo گفته است :

اینکه چه بازه ای رو قرمز در نظر بگیرید به خودتون مربوطه ولی اگر رنگ قرمز خالص منظورتون باشه، باید R=255 و G و B برابر صفر باشه. هر چی به این حالت نزدیک تر باشید، به رنگ قرمز نزدیک تر میشید.

برای گرفتن تک تک پیسکل ها باید یک حلقه تو در تو به اندازه طول و عرض عکسی که تصویر مورد نظر رو داخلش لود کردید بنویسید و داخلش با استفاده از bitmap.getpixel مربوط به بیتمپ اون تصویر، چک کنید که چه رنگی داره. برای تبدیل رنگ به صورت RGB هم باید از لینک زیر، استفاده کنید.

B4X - Rapid Application Development tools for Android, iOS and desktop applications

سلام، داداش تشکر به خاطر پاسختون.

چجوری حلقه رو بنویسم؟ من فقط میتونم ARGB یک پیکسل رو بگیرم.

با این کد:

Private ImageView1 As ImageView

Dim PixelColor As Int
    Dim bmp As Bitmap
    Dim a,r,g,b As Int

bmp = LoadBitmap(File.DirAssets,"1.jpg")

ImageView1.Bitmap = bmp

PixelColor = bmp.GetPixel(5,5)

a = Bit.UnsignedShiftRight(Bit.And(PixelColor, 0xff000000), 24)
    r = Bit.UnsignedShiftRight(Bit.And(PixelColor, 0xff0000), 16)
    g = Bit.UnsignedShiftRight(Bit.And(PixelColor, 0xff00), 8)
    b = Bit.And(PixelColor, 0xff)
    Label1.Text = "A = " & a
    Label2.Text = "R = " & r
    Label3.Text = "G = " & g
    Label4.Text = "B = " & b

من میخوام یک ARGB یا رنگ خاصی رو بهش بدم بعد بگم تعداد پیکسل هایی که این ARGB یا رنگ رو دارن، بشمار، بعد تعداد رو تقسیم بر تعداد کل پیکسل ها کنم. به طور خلاصه میخوام درصد یک رنگ خاصی رو پیدا کنم.

تشکر داداش، اگه میشه لطفا راهنمایی کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 22 ساعت قبل، مسعود دلفان آذری گفته است :

سلام، داداش تشکر به خاطر پاسختون.

چجوری حلقه رو بنویسم؟ من فقط میتونم ARGB یک پیکسل رو بگیرم.

با این کد:

Private ImageView1 As ImageView

Dim PixelColor As Int
    Dim bmp As Bitmap
    Dim a,r,g,b As Int

bmp = LoadBitmap(File.DirAssets,"1.jpg")

ImageView1.Bitmap = bmp

PixelColor = bmp.GetPixel(5,5)

a = Bit.UnsignedShiftRight(Bit.And(PixelColor, 0xff000000), 24)
    r = Bit.UnsignedShiftRight(Bit.And(PixelColor, 0xff0000), 16)
    g = Bit.UnsignedShiftRight(Bit.And(PixelColor, 0xff00), 8)
    b = Bit.And(PixelColor, 0xff)
    Label1.Text = "A = " & a
    Label2.Text = "R = " & r
    Label3.Text = "G = " & g
    Label4.Text = "B = " & b

من میخوام یک ARGB یا رنگ خاصی رو بهش بدم بعد بگم تعداد پیکسل هایی که این ARGB یا رنگ رو دارن، بشمار، بعد تعداد رو تقسیم بر تعداد کل پیکسل ها کنم. به طور خلاصه میخوام درصد یک رنگ خاصی رو پیدا کنم.

تشکر داداش، اگه میشه لطفا راهنمایی کنید.

این برنامه، تعداد پیکسل هایی که توی یک range رنگی خاص هستند رو پیدا می کنه. توی مثال من بازه ای که به پیدا کردن رنگ قرمز در تصویر منتهی میشه رو قرار دادم. این سورس کد تقدیم شما. امیدوارم بتونی برنامه های رنگارنگ و زیبایی درست کنی.

colors_counter.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...