简体   繁体   中英

create a symmetry of an image

Is it possible to obtain the bilateral symmetry of an binary image?

An example of the type of result that I search:

x=[true false false;false true false;false true false;false true false;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false true false;false true false;false true false;false true false;false true false;false true false;false true false;true false false];
sym=[0 0 1; 0 1 0; 0 1 0; 0 1 0; 1 0 0;1 0 0;1 0 0;1 0 0;1 0 0;1 0 0;1 0 0;1 0 0;1 0 0;1 0 0; 1 0 0;1 0 0;1 0 0;1 0 0; 0 1 0;0 1 0;0 1 0;0 1 0;0 1 0;0 1 0 ; 0 1 0;0 0 1];

figure, subplot(121), imagesc(x)
subplot(122), imagesc(sym)

在此处输入图片说明

As @user2999345 proposes

    % Data set
    x=[true false false;false true false;false true false;false true false;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false false true;false true false;false true false;false true false;false true false;false true false;false true false;false true false;true false false];

    % Flip array about vertical axis
    F=fliplr(x);

    figure
    subplot (121), imagesc(x)
    subplot (122), imagesc(F)

As it is MATLAB and it is always better to learn what goes inside the functions; you can see how those functions works:

sym1 = x(:,end:-1:1) ;   % acts like fliplr, arrange columns 
sym2 = x(end:-1:1,:) ;   % acts like flipud, arrange rows

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM