


Comment lire les valeurs de pixels d'une image multicanal dans OpenCV en utilisant C++ ?
Nous avons déclaré trois variables, à savoir 'blue_Channel', 'green_channel' et 'red_channel'. Le but de ces variables est de conserver les valeurs des pixels. Nous utilisons ces variables dans la « boucle for ». Ensuite, nous déclarons une matrice appelée 'color_Image_Matrix'.
La syntaxe de cette méthode est la suivante :
blue_Channel = color_image_Matrix.at<Vec3b>(i, j)[0];
Nous utilisons une image BGR. Il dispose de trois chaînes. Ces canaux conservent un ordre spécifique, color_image_Matrix.at
blue_Channel=color_image_Matrix.at<Vec3b> (30, 35) [0];
Cela signifie que la variable 'blue_Channel' aura la valeur de pixel du premier canal située à (30, 35). C'est ainsi que nous pouvons accéder aux valeurs de pixels en utilisant). OpenCV.
Le programme suivant lit les valeurs de pixels de différentes images RVB et affiche la valeur des différents pixels du canal dans une fenêtre de console
Exemple
#include#include using namespace std; using namespace cv; int main() { int blue_Channel; int green_Channel; int red_Channel; Mat color_image_Matrix; //Declaring a matrix to load the image// color_image_Matrix = imread("colors.jpg"); //loading image in the matrix// //Beginning of for loop to read pixel values of blue channel// for (int i = 0; i < color_image_Matrix.rows; i++)//loop for rows// { for (int j = 0; j < color_image_Matrix.cols; j++) { //loop for columns// blue_Channel = color_image_Matrix.at<Vec3b>(i, j)[0]; //To read the value of first channel.Here the blue channel is first channel// cout << "Value of pixel of blue channel" << "(" << i << "," << j << ")" << "=" << blue_Channel << endl; //showing the values in console window// } } //End of for loop to read pixel values of blue channel// //Beginning of for loop to read pixel values of green channel// for (int i = 0; i < color_image_Matrix.rows; i++)//loop for rows// { for (int j = 0; j < color_image_Matrix.cols; j++)//loop for columns// { green_Channel = color_image_Matrix.at (i, j)[1]; //To read the value of first channel.Here the green channel is first channel// cout << "Value of pixel of green channel" << "(" << i << "," << j << ")" << "=" << blue_Channel << endl;//showing the values in console window// } } //End of for loop to read pixel values of green channel// //Beginning of for loop to read pixel values of red channel// for (int i = 0; i < color_image_Matrix.rows; i++)//loop for rows// { for (int j = 0; j < color_image_Matrix.cols; j++)//loop for columns// { red_Channel = color_image_Matrix.at (i, j)[2]; //To read the value of first channel.Here the red channel is first channel// cout << "Value of pixel of red channel" << "(" << i << "," << j << ")" << "=" << blue_Channel << endl; //showing the values in console window// } } //End of for loop to read pixel values of red channel// if (waitKey(0)==27); cout << "Image read successfully…!"; return 0; }
Sortie
Image read successfully...
Ce programme prend quelques minutes à s'exécuter. Il lit chaque valeur de pixel à partir d'un canal différent. C'est pourquoi il faut quelques minutes pour que les résultats complets apparaissent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

typedef struct est utilisé en langage C pour créer des alias de type de structure afin de simplifier l'utilisation des structures. Il crée un alias pour un nouveau type de données sur une structure existante en spécifiant l'alias de la structure. Les avantages incluent une lisibilité améliorée, la réutilisation du code et la vérification du type. Remarque : La structure doit être définie avant d'utiliser un alias. L'alias doit être unique dans le programme et valide uniquement dans le périmètre dans lequel il est déclaré.

strcpy copie une chaîne dans une autre chaîne, tandis que strcat ajoute une chaîne à une autre chaîne. Les principales différences incluent : des objectifs différents, un traitement différent des paramètres dst et des considérations de sécurité différentes.

real est le type de données utilisé pour représenter les nombres à virgule flottante double précision en langage C. Il occupe 8 octets, a une précision d'environ 15 décimales et la plage est [-1,7976931348623157e+308, 1,7976931348623157e+308].

Le type complexe est utilisé pour représenter des nombres complexes en langage C, y compris des parties réelles et imaginaires. Sa forme d'initialisation est complex_number = 3.14 + 2.71i, la partie réelle est accessible via creal(complex_number) et la partie imaginaire est accessible via cimag(complex_number). Ce type prend en charge les opérations mathématiques courantes telles que l'addition, la soustraction, la multiplication, la division et le modulo. De plus, un ensemble de fonctions permettant de travailler avec des nombres complexes est fourni, telles que cpow, csqrt, cexp et csin.

En langage C, il existe deux manières d'implémenter l'opération d'exponentiation : utiliser la fonction pow() pour calculer la puissance du deuxième paramètre du premier paramètre. Définissez une fonction de puissance personnalisée, qui peut être implémentée de manière récursive ou itérative : la méthode récursive continue de doubler la puissance jusqu'à ce qu'elle atteigne 0. La méthode itérative utilise une boucle pour multiplier la base une par une.

En langage C, les méthodes de gestion des erreurs de la fonction scanf incluent : 1. Vérifiez la chaîne de format ; 2. Vérifiez l'entrée ; 3. Vérifiez la valeur de retour ; 4. Définissez l'indicateur d'erreur ; les erreurs personnalisées sont traitées. Pour éviter les erreurs, utilisez les types de données corrects, validez soigneusement les entrées, vérifiez les valeurs de retour et gérez les erreurs potentielles dans votre programme.

Le mot-clé restrict est utilisé pour informer le compilateur qu'une variable n'est accessible que par un pointeur, empêchant un comportement non défini, optimisant le code et améliorant la lisibilité : empêchant un comportement non défini lorsque plusieurs pointeurs pointent vers la même variable. Pour optimiser le code, le compilateur utilise le mot-clé restrict pour optimiser l'accès aux variables. Améliore la lisibilité du code en indiquant que les variables ne sont accessibles que par un pointeur.

_Bool représente le type booléen en langage C. C'est un type de données simple qui ne contient que deux valeurs, vrai ou faux. Il est utilisé pour représenter les résultats de conditions ou d'expressions logiques. Il occupe généralement 1 octet de mémoire et ne peut stocker que vrai ou. fausse. fausse valeur.
