How to Create Alternating Black Columns Across an Image?

6 visualizzazioni (ultimi 30 giorni)
I have an image X and I would like to create black columns going across the image that are 16 pixels thick with a distance of 16 pixels between each column and I have no idea how to do this. The best I could do was make one column using this line of code:
X(:,1:16,:) = 0;
Also I am not allowed to solve the problem using loops.

Risposta accettata

Jose Marques
Jose Marques il 10 Set 2017
Hello Richard! You can try this:
size_of_column = 16;
img = imread('image_exemple.jpg');
imshow(img);
mask = zeros(size(img));
for i=1:size(mask,2)
if(mod(round(i/size_of_column),2) == 1)
mask(:,i,:) = 1;
end
end
figure();
img_final(:,:,:) = uint8(double(img(:,:,:)).*mask(:,:,:));
imshow(img_final)
The result:
  6 Commenti
Richard Zareck
Richard Zareck il 10 Set 2017
Thank you for your help this works as well!

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 10 Set 2017
  2 Commenti
Walter Roberson
Walter Roberson il 10 Set 2017
clown(:, 1:32:end, :) = 0;
clown(:, 2:32:end, :) = 0;
clown(:, 3:32:end, :) = 0;
...
clown(:, 16:32:end, :) = 0;

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by