Clear Filters
Clear Filters

How can I do Albanian flag using image processing toolbox ?

1 view (last 30 days)
Hello, I have basic knowledge on using Matlab Image Processing Toolbox , but I am not quite good at it yet . I can only basically manipulate colours , but I am not skilled enough at creating shapes or forms . I wanted to know if there is any anyone who can help me create a code from Matlab Image Processing Toolbox for Albanian Flag. Thank you & Have a nice day.

Answers (2)

Walter Roberson
Walter Roberson on 30 May 2015
See the techniques in this recent discussion
The difference with color is you need to use a 3 dimension output array, AlFlag(x,y,C) where AlFlag(:,:,1) is for Red component, (:,:,2) for Green component, and (:,:,3) is for Blue component. Also you need to decide what to do if you paint two different colors at the same location: do you take the last color painted (as if you are painting in layers, later ones on top) or do you want to blend colors (like wet paint or like watercolors)
  2 Comments
Walter Roberson
Walter Roberson on 30 May 2015
That is a binary flag, black and red. black = 0, red = 1. When you have the binary matrix, you can display it with
imshow(AlFlag,[])
colormap([0 0 0; 1 0 0]); %black then red

Sign in to comment.


Image Analyst
Image Analyst on 30 May 2015
Altin, if you want to create this flag from scratch, the first step is to get the coordinates of the outline of the black diagram in the middle of the flag. It might be easiest if you took an existing flag image and used bwboundaries on it.
% Find black in the red channel:
binaryImage = rgbImage(:,:,1) < 128;
boundaries = bwboundaries(binaryImage);
% Extract x and y from the first blob.
x = boundaries{1}(:, 2);
y = boundaries{1}(:, 1);
Then save those out to a file. Then, to create a new one, you'd use poly2mask() and cat():
mask = poly2mask(x, y, rows, columns);
% Initialize color channel images.
redChannel = redValue * ones(rows, columns, 'uint8');
greenChannel = greenValue * ones(rows, columns, 'uint8');
blueChannel = blueValue * ones(rows, columns, 'uint8');
% Make mask area black in all channels
redChannel(mask) = 0;
greenChannel(mask) = 0;
blueChannel(mask) = 0;
% Combine into a true color RGB image
rgbImage = cat(3, redChannel, greenChannel, blueChannel);
For the reddish background, you need to know what redValue, greenValue, and blueValue are.

Categories

Find more on Convert Image Type in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!