J'ai des images en niveaux de gris d'un ArrayList<System.Windows.Controls.Image>
disposées horizontalement sur un Canvas
. Leurs ImageSource
sont de type System.Windows.Media.Imaging.BitmapImage
.Obtenir une échelle de gris Hauteur de l'image sans tenir compte des pixels blancs
Existe-t-il un moyen de mesurer en pixels la hauteur de chaque Image
sans tenir compte des pixels blancs et non transparents? En dehors de la partie colorée? Disons que j'ai une Image
de hauteur 10
, dans laquelle toute la moitié supérieure est blanche et la moitié inférieure est noire; Je devrais obtenir 5
car c'est la taille. De la même manière, si ce Image
avait le tiers supérieur noir, le tiers moyen blanc et le tiers inférieur noir, la hauteur serait 10
.
est ici un dessin qui montre les hauteurs souhaitées (en bleu) de 3 images:
Je suis prêt à utiliser un autre type pour les images, mais il doit être possible d'obtenir soit d'un byte[]
pour ce type, ou pour y convertir Image
. J'ai lu les documents sur Image
, ImageSource
et Visual
, mais je n'ai vraiment aucune idée par où commencer.
Vous allez vouloir générer un histogramme pour les lignes de l'image, puis d'analyser l'histogramme pour trouver les limites des pixels non blancs. – Abion47
@ Abion47 Si je peux obtenir un histogramme, je peux probablement aussi simplement obtenir et ajouter le RVB sur chaque ligne pour voir si tout est blanc. Mais comment puis-je même obtenir de telles données? – Mat
Cela dépend du type d'objet que les contrôles 'Source' pour vos images sont. – Abion47