How to remove image margins
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
lech king
el 30 de Mzo. de 2021
Editada: Esen Ozbay
el 31 de Mzo. de 2021
After extracting the required parts from a CT scan, I also intend to remove the extra margins of the image (black parts around the lungs)
I understand that I can add the contents of rows or columns one by one with command for and delete the first non-zero row or column, but it seems that using command for has a high computational load. Do you have any other suggestion to solve this problem?
0 comentarios
Respuesta aceptada
Esen Ozbay
el 30 de Mzo. de 2021
Editada: Esen Ozbay
el 30 de Mzo. de 2021
Let your array be called CTscan, and be a 1024x1024 matrix.
If you know how many columns you want to delete (let's say 21), you can do this to delete the first 21 columns:
CTscan(:, 1:21) = [];
Then, you will have a 1024x1003 matrix.
You can also do the same for rows. To delete the first 23 rows of CTscan:
CTscan(1:23, :) = [];
Then, you will have a 1001x1003 matrix.
To delete the last 21 columns:
CTscan(:, end-20:end) = [];
3 comentarios
Esen Ozbay
el 31 de Mzo. de 2021
Editada: Esen Ozbay
el 31 de Mzo. de 2021
To detect the location of the margins automatically, I can suggest the following:
% Delete zero columns (leave a margin of 10 elements)
temp = sum(CTScan>0, 1); % Find the number of nonzero elements in each column
nonZeroColumnIndices = find(temp>0); % Find columns that have at least 1 nonzero element
CTScan = CTScan(:, nonZeroColumnIndices(1)-10:nonZeroColumnIndices(end)+10);
% Delete zero rows (leave a margin of 10 elements)
temp = sum(CTScan>0, 2);
nonZeroRowIndices = find(temp>0);
CTScan = CTScan(nonZeroRowIndices(1)-10:nonZeroRowIndices(end)+10,:);
Hope this helps!
Más respuestas (1)
KSSV
el 30 de Mzo. de 2021
Let I be your image and say you want to extract image from row0 to row1 and col0 to col1..
I_extract = I(row0:row1,col0:col1,:) ;
Ver también
Categorías
Más información sobre Image Processing Toolbox en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!