C ++ ، كيفية تحميل الصور وحساب البكسلات من بعض الألوان

StackOverflow https://stackoverflow.com/questions/3835712

  •  26-09-2019
  •  | 
  •  

سؤال

ها هي مشكلتي:

أنا أبحث عن طريقة لاستيراد صورة إلى C ++ ثم اجتياز وحدات البكسل ، مما يزيد من عداد في كل مرة يتم فيها العثور على بكسل من لون معين.

لقد أجريت بعض الأبحاث ، لكنني لم أجد أي شيء مفيد بشكل خاص. شيطان يبدو أنه خيار جيد ، لكنني لست متأكدًا من أين أبدأ.

إليك القليل من C ++/Python Pseudo-Code نأمل أن يوضح ما أحاول القيام به:

for image in folder:

    A = 0;
    B = 0;

    for pixel in image:

        if (pixel == colourA) {A++}
        if (pixel == colourB) {B++}

    //Output the count of colours for each image
    outputToFile(A, B);

هل لدى أي شخص بعض النصائح حول من أين تبدأ؟

شكرًا

قم بتحرير بعض المعلومات الإضافية: أنا أستخدم Windows 7 وجميع الصور هي .pngs

edit2 لقد حصلت على كل شيء يعمل ، باستثناء اكتشاف لون البكسل الحالي. حاليا أنا أستخدم هذا:

int blue = ((uchar *)(img->imageData + pixelX*img->widthStep))[pixelY*img->nChannels + 0];

لكنه لا يعمل ، وليس لدي أي فكرة عن كيفية عمله. لم أتمكن من العثور على أي شيء عن هذا يمكنني فهمه. هل يمكن لأي شخص أن يوجهني في الاتجاه الصحيح حول كيفية العثور على قيم RGB لبيكسل معين؟

edit3 تم القيام به! لأي شخص يجد هذا يحاول القيام بشيء مماثل ، يمكن العثور على معظم أسئلتي المتبقية وقليلًا من التعليمات البرمجية هنا. شكرا للمساعدة!

هل كانت مفيدة؟

المحلول

من غير المنطقي إلقاء نظرة على OpenCV لأنه عندما تبدأ في الحاجة إلى مساحة أكبر للتحرك ، فإن OpenCV سيتيح لك القيام بالعديد من مهام رؤية الكمبيوتر. والاستخدام Boost :: نظام الملفات للقيام برمز "لكل صورة في DIR".

نلاحظ أن السيرة الذاتية :: قارن تعمل الدالة بشكل أساسي نصف العمل من أجلك بالفعل ... سأسمح لك بقراءة ذلك والاستمتاع بالاستفادة من واجهة برمجة تطبيقات OpenCV.

نصائح أخرى

يجب عليك إلقاء نظرة على OpenCV.

يعتمد على تنسيق المنصة والتنسيق. في Windows ، يتم دعم صور BMP أصليًا (أي في API). ImageMagick هي مكتبة منصة منصة ، عالمية جميلة ، تأخذ أي تنسيق هناك ، لكنها ثقيلة. QT لديه بعض معالجة الصور أيضًا - يقتصر على التنسيقات الأكثر شيوعًا.

SDL لديه بعض الأشياء المعالجة المفيدة للبكسل.

http://www.libsdl.org/

إنه نظيف للغاية أيضًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top