How to Create Alternating Black Columns Across an Image?

4 vues (au cours des 30 derniers jours)
Richard Zareck
Richard Zareck le 10 Sep 2017
Commenté : Jose Marques le 10 Sep 2017
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.

Réponse acceptée

Jose Marques
Jose Marques le 10 Sep 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 commentaires
Richard Zareck
Richard Zareck le 10 Sep 2017
Thank you for your help this works as well!
Jose Marques
Jose Marques le 10 Sep 2017
Nice work!

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 10 Sep 2017
  2 commentaires
Richard Zareck
Richard Zareck le 10 Sep 2017
I need my picture to look like this
Walter Roberson
Walter Roberson le 10 Sep 2017
clown(:, 1:32:end, :) = 0;
clown(:, 2:32:end, :) = 0;
clown(:, 3:32:end, :) = 0;
...
clown(:, 16:32:end, :) = 0;

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by