I have a few images of the following nature (showing only 2 to exemplify; these are 2 separate images):
From these, I want to extract the central black image (the E or the Cross) and overlay it on other blank surfaces, like:
I cannot just extract the black pixels and overlay it, since the boundaries are also black. The size of all the images is same, 400x400x3, so, if I can get the exact pixels for the central black image (the E and the Cross), then I can just convert the corresponding pixels to black for the empty surfaces. So, is there an easy way of getting those pixels?
Any help will be appreciated!
NOTE:-
Here's the full demo for you:
clc; % Clear the command window. close all; % Close all figures (except those of imtool.) clear; % Erase all existing variables. Or clearvars if you want. workspace; % Make sure the workspace panel is showing. format short g; format compact; fontSize = 25; %=============================================================================== % Get the name of the image the user wants to use. baseFileName = 'o4s1_11.bmp'; % Get the full filename, with path prepended. folder = pwd fullFileName = fullfile(folder, baseFileName); %=============================================================================== % Read in a first image. grayImage1 = imread(fullFileName); % Get the dimensions of the image. % numberOfColorChannels should be = 1 for a gray scale image, and 3 for an RGB color image. [rows, columns, numberOfColorChannels] = size(grayImage1) if numberOfColorChannels > 1 % It's not really gray scale like we expected - it's color. % Use weighted sum of ALL channels to create a gray scale image. % grayImage = rgb2gray(grayImage); % ALTERNATE METHOD: Convert it to gray scale by taking only the green channel, % which in a typical snapshot will be the least noisy channel. grayImage1 = grayImage1(:, :, 2); % Take green channel. end % Display the image. subplot(2, 2, 1); imshow(grayImage1, []); axis on; axis image; caption = sprintf('Image1'); title(caption, 'FontSize', fontSize, 'Interpreter', 'None'); drawnow; hp = impixelinfo(); % Set up figure properties: % Enlarge figure to full screen. set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0.04, 1, .96]); % Get rid of tool bar and pulldown menus that are along top of figure. % set(gcf, 'Toolbar', 'none', 'Menu', 'none'); % Give a name to the title bar. set(gcf, 'Name', 'Demo by ImageAnalyst', 'NumberTitle', 'Off') drawnow; %=============================================================================== % Read in a second image. fullFileName = fullfile(pwd, 'blankv5.bmp'); grayImage2 = imread(fullFileName); % Get the dimensions of the image.
Comments
Post a Comment