How to convert row and column data into x,y,flag format?
Show older comments
I want to store row and column data for BW1 file.
Data is stored in an array like so: 

I want to have a file like:
X Y FLAG
1 1 0
2 1 1
3 1 1
4 1 0
5 1 1
1 2 0
2 2 1
3 2 0
4 2 1
5 2 0
X corresonds to column number.
Y corresonds to row number.
Flag number is the number already stored in the array corresponding to the row and column number.
Code:
A=imread('inismor1.jpg');
G=rgb2gray(A);
BW1=edge(G,'canny');
imshow(BW1)
Answers (2)
Rik
on 15 May 2019
BW1=[0 0 1;1 1 0];%example matrix
[Y,X]=ndgrid(1:size(BW1,1),1:size(BW1,2));
data=[X(:) Y(:) BW1(:)];
4 Comments
Kayleigh Jayne Moloney
on 15 May 2019
Rik
on 15 May 2019
You're welcome. If my answer helped you, please consider marking it as accepted answer (unless you prefer the solution provided by Andrei). If it didn't solve your question, don't hesitate to post a comment explaining your remaining issues.
Mohamad Thaer
on 20 May 2024
I want my flag to be showing onşy values of 1, i donot wan the 0 values, is it possible?
Rik
on 21 May 2024
You can either use find on the original matrix, or use logical indexing.
Andrei Bobrov
on 15 May 2019
1 vote
out = [fullfact(size(BW1)),BW1(:)];
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!