Je voudrais prendre une image RVB, trouver les points dans l'image qui sont blancs, et obtenir les coordonnées cartésiennes de ces points dans l'image. J'y suis arrivé la plupart du temps, mais lorsque j'essaie de tracer les coordonnées cartésiennes, j'obtiens une image carrelée verticalement (c'est-à-dire 5 copies superposées de ce que je devrais voir). Quelqu'un sait ce qui pourrait causer cela?Image Répétition de Binaire à Cartésien
,
Code: (JPG est disponible en tant que 2448 x x3264 x 3 uint8)
I = imread('IMG_0245.JPG');
imshow(I); % display unaltered image
% Convert image to grayscale
I = rgb2gray(I);
% Convert image to binary (black/white)
I = im2bw(I, 0.9);
% Generate cartesian coordinates of image
imageSize = size(I);
[x, y] = meshgrid(1:imageSize(1), 1:imageSize(2));
PerspectiveImage = [x(:), y(:), I(:)];
% Get indices of white points only
whiteIndices = find(PerspectiveImage(:,3));
figure; plot(PerspectiveImage(whiteIndices, 1), PerspectiveImage(whiteIndices, 2),'.');
% Flip vertically to correct indexing vs. plotting issue
axis ij
Désolé au sujet de la bordure blanche - qui est apparu à la suite de l'enregistrement d'une figu Matlab re comme un jpg. Merci d'avoir répondu! – lg22woo
@ lg22woo J'ai pensé :) ça se produit quand vous enregistrez nativement des chiffres dans MATLAB. BTW, je vous recommande d'utiliser l'outil 'export_fig' sur MATLAB FileExchange. Bien meilleur moyen d'enregistrer des figures sur le disque: http://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig - Je l'utilise depuis des années! – rayryeng
Vous êtes les bienvenus aussi! – rayryeng