前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >验证从图像中识别矩形、三角形、圆形和菱形等形状方面的有效性。

验证从图像中识别矩形、三角形、圆形和菱形等形状方面的有效性。

作者头像
裴来凡
发布2022-05-28 15:24:09
8090
发布2022-05-28 15:24:09
举报
文章被收录于专栏:图像处理与模式识别研究所

is_uniform.m

代码语言:javascript
复制
function output = is_uniform(input)
    Uniform_list=[2,3,4,5,7,8,9,13,15,16,17,25,29,31,32,33,49,57,61,63,64,65,97,113,121,125,127,128,129,130,132,136,144,160,192,193,194,196,200,208,224,225,226,228,232,240,241,242,244,248,249,250,252,253,254,255];
    output=0;
    for i=1:56
        if(Uniform_list(i)==input)
            output=i;
        end;
    end;
end

Binary_Pattern_6_Algorithms.m

代码语言:javascript
复制
%**************************PATTERN RECOGNITION USING HISTOGRAM SIMILARITY IDENTIFICATION*******************************% 
clc;
clear all;
close all;
%% OBTAINING THE IMAGE TO BE PROCESSED FROM AN IMAGE FILE OR CAMERA
i=0;
BW_thresh=50;
while(i~=1&&i~=2&&i~=3)
    i=input('To obtain the image through the camera, Enter 1. To open a JPEG image image, Enter 2:');
    if(i==1)    
        vid=videoinput('winvideo',1,'YUY2_320x240');  
        while (i==1) 
            preview(vid);                                         
            disp('Enter any key to take a snapshot');
            pause;                                                                  
            img=getsnapshot(vid);                                                                       
            disp('Snapshot image has been succesfully obtained, Please view the processed image');
            closepreview(vid);                                     
            img=single(rgb2gray(ycbcr2rgb(img)));
            j=min(img(:))+BW_thresh;
            for x=1:320
                for y=1:240
                    if(img(y,x)>=j)
                        img(y,x)=1;
                    else
                        img(y,x)=0;
                    end;
                end;
            end;
            imtool(img,[0,1]);                                            
            i=input('To repeat photoshoot,Enter 1. To continue Enter 2:');    
            imtool close all;
        end;
        delete(vid);
    elseif(i==2)   
        [x,y]=uigetfile('*.jpg','Open The Required JPG image'); 
        if(strfind(x,'.jpg'))
            img=rgb2gray(imread(strcat(y,x),'jpg'));
            img=single(imresize(img,[240,320]));
            j=min(img(:))+BW_thresh;
            for x=1:320
                for y=1:240
                    if(img(y,x)>=j)
                        img(y,x)=1;
                    else
                        img(y,x)=0;
                    end;
                end;
            end;
        else 
            disp('JPG Image aquisition error');
            i=0;
        end;
    else
        disp('An Error has Occured in Entering the choice, Please repeat');
    end;
end;
%% ALGORITHM'S I, II, III, IV & V- LOCAL BINARY PATTERN, ROBUST LOCAL BINARY PATTERN, DISCRIMINATIVE ROBUST LOCAL BINARY PATTERN, LOCAL TERNARY PATTERN, ROBUST LOCAL TERNARY PATTERN 
LTP_Threshold=0.3;
LBP_bin=zeros(1,57);
RLBP_bin=zeros(1,29);
ULBP_bin=zeros(1,57);
LLBP_bin=zeros(1,57);
RLTP_bin=zeros(1,6561);
HLBP_bin=zeros(1,256);
DRLBP_bin=zeros(1,58);
HLTP_bin=zeros(1,6561);
DRLTP_bin=zeros(1,6561);
for x=3:318
    for y=3:238
        LBP(y,x)=128*(Bipolate(img,y-1,x-1)-img(y,x)>=0)+64*(Bipolate(img,y-1,x)-img(y,x)>=0)+32*(Bipolate(img,y-1,x+1)-img(y,x)>=0)+16*(Bipolate(img,y,x+1)-img(y,x)>=0)+8*(Bipolate(img,y+1,x+1)-img(y,x)>=0)+4*(Bipolate(img,y+1,x)-img(y,x)>=0)+2*(Bipolate(img,y+1,x-1)-img(y,x)>=0)+(Bipolate(img,y,x-1)-img(y,x)>=0)+1;
        i=is_uniform(LBP(y,x));
        if(i)
            LBP_bin(i)=LBP_bin(i)+1; 
            i=is_uniform(min(LBP(y,x),257-LBP(y,x)));
            RLBP_bin(i)=RLBP_bin(i)+1; 
        elseif(LBP(y,x)~=256 && LBP(y,x)~=1);
            LBP_bin(57)=LBP_bin(57)+1;
            RLBP_bin(29)=RLBP_bin(29)+1; 
        end;
        if(LBP(y,x)~=1&&LBP(y,x)~=256)
            weight(y,x)=sqrt((-0.5*Bipolate(img,y,x-1)+0.5*Bipolate(img,y,x+1)).^2+(-0.5*Bipolate(img,y-1,x)+0.5*Bipolate(img,y+1,x)).^2);
            HLBP_bin(LBP(y,x))=HLBP_bin(LBP(y,x))+weight(y,x);
        end;
        ULBP(y,x)=128*(Bipolate(img,y-1,x-1)-img(y,x)>=LTP_Threshold)+64*(Bipolate(img,y-1,x)-img(y,x)>=LTP_Threshold)+32*(Bipolate(img,y-1,x+1)-img(y,x)>=LTP_Threshold)+16*(Bipolate(img,y,x+1)-img(y,x)>=LTP_Threshold)+8*(Bipolate(img,y+1,x+1)-img(y,x)>=LTP_Threshold)+4*(Bipolate(img,y+1,x)-img(y,x)>=LTP_Threshold)+2*(Bipolate(img,y+1,x-1)-img(y,x)>=LTP_Threshold)+(Bipolate(img,y,x-1)-img(y,x)>=LTP_Threshold)+1;
        i=is_uniform(ULBP(y,x));
        if(i)
            ULBP_bin(i)=ULBP_bin(i)+1; 
        elseif(ULBP(y,x)~=256 && ULBP(y,x)~=1);
            ULBP_bin(57)=ULBP_bin(57)+1;
        end;  
        LLBP(y,x)=128*(Bipolate(img,y-1,x-1)-img(y,x)<=-LTP_Threshold)+64*(Bipolate(img,y-1,x)-img(y,x)<=-LTP_Threshold)+32*(Bipolate(img,y-1,x+1)-img(y,x)<=-LTP_Threshold)+16*(Bipolate(img,y,x+1)-img(y,x)<=-LTP_Threshold)+8*(Bipolate(img,y+1,x+1)-img(y,x)<=-LTP_Threshold)+4*(Bipolate(img,y+1,x)-img(y,x)<=-LTP_Threshold)+2*(Bipolate(img,y+1,x-1)-img(y,x)<=-LTP_Threshold)+(Bipolate(img,y,x-1)-img(y,x)<=-LTP_Threshold)+1;                
        i=is_uniform(LLBP(y,x));
        if(i)
            LLBP_bin(i)=LLBP_bin(i)+1; 
        elseif(LLBP(y,x)~=256 && LLBP(y,x)~=1);
            LLBP_bin(57)=LLBP_bin(57)+1;
        end; 
        LTP(y,x,1:8)=[(bitget(ULBP(y,x)-1,8)-bitget(LLBP(y,x)-1,8)),(bitget(ULBP(y,x)-1,7)-bitget(LLBP(y,x)-1,7)),(bitget(ULBP(y,x)-1,6)-bitget(LLBP(y,x)-1,6)),(bitget(ULBP(y,x)-1,5)-bitget(LLBP(y,x)-1,5)),(bitget(ULBP(y,x)-1,4)-bitget(LLBP(y,x)-1,4)),(bitget(ULBP(y,x)-1,3)-bitget(LLBP(y,x)-1,3)),(bitget(ULBP(y,x)-1,2)-bitget(LLBP(y,x)-1,2)),(bitget(ULBP(y,x)-1,1)-bitget(LLBP(y,x)-1,1))];
        i=(LTP(y,x,1)+1)*3.^7+(LTP(y,x,2)+1)*3.^6+(LTP(y,x,3)+1)*3.^5+(LTP(y,x,4)+1)*3.^4+(LTP(y,x,5)+1)*3.^3+(LTP(y,x,6)+1)*3.^2+(LTP(y,x,7)+1)*3.^1+(LTP(y,x,8)+2);       
        HLTP_bin(i)=HLTP_bin(i)+1;
        j=(-LTP(y,x,1)+1)*3.^7+(-LTP(y,x,2)+1)*3.^6+(-LTP(y,x,3)+1)*3.^5+(-LTP(y,x,4)+1)*3.^4+(-LTP(y,x,5)+1)*3.^3+(-LTP(y,x,6)+1)*3.^2+(-LTP(y,x,7)+1)*3.^1+(-LTP(y,x,8)+2);       
        Invert_value(i)=j;
        j=3281;
        for i=1:8
            if(LTP(y,x,i)==1)
                j=(LTP(y,x,1)+1)*3.^7+(LTP(y,x,2)+1)*3.^6+(LTP(y,x,3)+1)*3.^5+(LTP(y,x,4)+1)*3.^4+(LTP(y,x,5)+1)*3.^3+(LTP(y,x,6)+1)*3.^2+(LTP(y,x,7)+1)*3.^1+(LTP(y,x,8)+2);
                break;
            elseif(LTP(y,x,i)==-1)
                j=(-LTP(y,x,1)+1)*3.^7+(-LTP(y,x,2)+1)*3.^6+(-LTP(y,x,3)+1)*3.^5+(-LTP(y,x,4)+1)*3.^4+(-LTP(y,x,5)+1)*3.^3+(-LTP(y,x,6)+1)*3.^2+(-LTP(y,x,7)+1)*3.^1+(-LTP(y,x,8)+2);
                break;                
            end;
        end;
        if(j~=3281)
            RLTP_bin(j)=RLTP_bin(j)+1;
        end;         
    end;
end;
for i=1:128
    j=is_uniform(i);
    if(j~=0)
        DRLBP_bin(j)=HLBP_bin(i)+HLBP_bin(257-i);
        DRLBP_bin(j+29)=abs(HLBP_bin(i)-HLBP_bin(257-i));
    else
        DRLBP_bin(29)=DRLBP_bin(29)+HLBP_bin(i)+HLBP_bin(257-i);
        DRLBP_bin(58)=DRLBP_bin(58)+abs(HLBP_bin(i)-HLBP_bin(257-i));
    end;
end;
for i=1:3280
    if(HLTP_bin(i)~=0)
        if(i~=1)
            DRLTP_bin(i)=HLTP_bin(i)+HLTP_bin(Invert_value(i));
        else
            DRLTP_bin(1)=HLTP_bin(1);
        end;
        DRLTP_bin(i+3280)=abs(HLTP_bin(i)-HLTP_bin(Invert_value(i)));
    end;
end;
LBP_bin(:)=LBP_bin(:)/sum(LBP_bin);
RLBP_bin(:)=RLBP_bin(:)/sum(RLBP_bin);
DRLBP_bin(:)=DRLBP_bin(:)/sum(DRLBP_bin);
LTP_bin=horzcat(ULBP_bin,LLBP_bin);
LTP_bin(:)=LTP_bin(:)/sum(LTP_bin);
RLTP_bin(:)=RLTP_bin(:)/sum(RLTP_bin);
DRLTP_bin(1:3280)=DRLTP_bin(1:3280)/(2*sum(DRLTP_bin(1:3280)));
DRLTP_bin(3281:6561)=DRLTP_bin(3281:6561)/(2*sum(DRLTP_bin(3281:6561)));
%% DISPLAY THE LBP, RLBP, LTP & RLTP ALGORITHM'S BINS AS 4 HISTOGRAMS
figure;
subplot(3,2,1);
bar(LBP_bin);
title('LBP HISTOGRAM');
xlabel('LBP bins');
ylabel('Occurence Probability');
subplot(3,2,3);
bar(RLBP_bin);
title('RLBP HISTOGRAM');
xlabel('RLBP bins');
ylabel('Occurence Probability');
subplot(3,2,5);
bar(DRLBP_bin);
title('DRLBP HISTOGRAM');
xlabel('DRLBP bins');
ylabel('Occurence Probability');
subplot(3,2,2);
bar(LTP_bin,'r');
title('LTP HISTOGRAM');
xlabel('LTP bins');
ylabel('Occurence Probability');
subplot(3,2,4);
bar(RLTP_bin,'r');
title('RLTP HISTOGRAM');
xlabel('RLTP bins');
ylabel('Occurence Probability');
subplot(3,2,6);
bar(DRLTP_bin,'r');
title('DRLTP HISTOGRAM');
xlabel('DRLTP bins');
ylabel('Occurence Probability');
%% IDENTIFICATION OF FIGURE BY COMPARING CURRENT HISTOGRAMS WITH STANDARD STORED HISTOGRAMS OF SEVERAL SHAPES
clc;
load('Square_Standard_bins.mat');
load('Rectangle_Standard_bins.mat');
load('Triangle_Standard_bins.mat');
load('Circle_Standard_bins.mat');
load('Pentagon_Standard_bins.mat');
load('Diamond_Standard_bins.mat');
Square_LBP_Similarity=(2-sum(abs(Square_Standard_LBP_bin(:)-LBP_bin(:))))/2;
Rectangle_LBP_Similarity=(2-sum(abs(Rectangle_Standard_LBP_bin(:)-LBP_bin(:))))/2;
Triangle_LBP_Similarity=(2-sum(abs(Triangle_Standard_LBP_bin(:)-LBP_bin(:))))/2;
Circle_LBP_Similarity=(2-sum(abs(Circle_Standard_LBP_bin(:)-LBP_bin(:))))/2;
Pentagon_LBP_Similarity=(2-sum(abs(Pentagon_Standard_LBP_bin(:)-LBP_bin(:))))/2;
Diamond_LBP_Similarity=(2-sum(abs(Diamond_Standard_LBP_bin(:)-LBP_bin(:))))/2;
Sim_Max=max([Square_LBP_Similarity,Rectangle_LBP_Similarity,Triangle_LBP_Similarity,Circle_LBP_Similarity,Pentagon_LBP_Similarity,Diamond_LBP_Similarity]);
if(Sim_Max>0.66)
    if(Sim_Max==Square_LBP_Similarity)
        fprintf('LBP Histogram comparison shows that the Pattern obtained is that of a Square with percentage similarity:%d o/o\n',uint8(Square_LBP_Similarity*100));
    elseif(Sim_Max==Rectangle_LBP_Similarity)
        fprintf('LBP Histogram comparison shows that the Pattern obtained is that of a Rectangle with percentage similarity:%d o/o\n',uint8(Rectangle_LBP_Similarity*100));     
    elseif(Sim_Max==Triangle_LBP_Similarity)
        fprintf('LBP Histogram comparison shows that the Pattern obtained is that of a Triangle with percentage similarity:%d o/o\n',uint8(Triangle_LBP_Similarity*100));  
    elseif(Sim_Max==Circle_LBP_Similarity)
        fprintf('LBP Histogram comparison shows that the Pattern obtained is that of a Circle with percentage similarity:%d o/o\n',uint8(Circle_LBP_Similarity*100));  
    elseif(Sim_Max==Pentagon_LBP_Similarity)
        fprintf('LBP Histogram comparison shows that the Pattern obtained is that of a Pentagon with percentage similarity:%d o/o\n',uint8(Pentagon_LBP_Similarity*100));  
    else
        fprintf('LBP Histogram comparison shows that the Pattern obtained is that of a Diamond with percentage similarity:%d o/o\n',uint8(Diamond_LBP_Similarity*100));          
    end;
else
    disp('LBP algorithm fails to identify the current figure');
end;
Square_RLBP_Similarity=(2-sum(abs(Square_Standard_RLBP_bin(:)-RLBP_bin(:))))/2;
Rectangle_RLBP_Similarity=(2-sum(abs(Rectangle_Standard_RLBP_bin(:)-RLBP_bin(:))))/2;
Triangle_RLBP_Similarity=(2-sum(abs(Triangle_Standard_RLBP_bin(:)-RLBP_bin(:))))/2;
Circle_RLBP_Similarity=(2-sum(abs(Circle_Standard_RLBP_bin(:)-RLBP_bin(:))))/2;
Pentagon_RLBP_Similarity=(2-sum(abs(Pentagon_Standard_RLBP_bin(:)-RLBP_bin(:))))/2;
Diamond_RLBP_Similarity=(2-sum(abs(Diamond_Standard_RLBP_bin(:)-RLBP_bin(:))))/2;
Sim_Max=max([Square_RLBP_Similarity,Rectangle_RLBP_Similarity,Triangle_RLBP_Similarity,Circle_RLBP_Similarity,Pentagon_RLBP_Similarity,Diamond_RLBP_Similarity]);
if(Sim_Max>0.66)
    if(Sim_Max==Square_RLBP_Similarity)
        fprintf('RLBP Histogram comparison shows that the Pattern obtained is that of a Square with percentage similarity:%d o/o\n',uint8(Square_RLBP_Similarity*100));
    elseif(Sim_Max==Rectangle_RLBP_Similarity)
        fprintf('RLBP Histogram comparison shows that the Pattern obtained is that of a Rectangle with percentage similarity:%d o/o\n',uint8(Rectangle_RLBP_Similarity*100));     
    elseif(Sim_Max==Triangle_RLBP_Similarity)
        fprintf('RLBP Histogram comparison shows that the Pattern obtained is that of a Triangle with percentage similarity:%d o/o\n',uint8(Triangle_RLBP_Similarity*100));  
    elseif(Sim_Max==Circle_RLBP_Similarity)
        fprintf('RLBP Histogram comparison shows that the Pattern obtained is that of a Circle with percentage similarity:%d o/o\n',uint8(Circle_RLBP_Similarity*100));  
    elseif(Sim_Max==Pentagon_RLBP_Similarity)
        fprintf('RLBP Histogram comparison shows that the Pattern obtained is that of a Pentagon with percentage similarity:%d o/o\n',uint8(Pentagon_RLBP_Similarity*100));  
    else
        fprintf('RLBP Histogram comparison shows that the Pattern obtained is that of a Diamond with percentage similarity:%d o/o\n',uint8(Diamond_RLBP_Similarity*100));          
    end;
else
    disp('RLBP algorithm fails to identify the current figure');
end;
Square_DRLBP_Similarity=(2-sum(abs(Square_Standard_DRLBP_bin(:)-DRLBP_bin(:))))/2;
Rectangle_DRLBP_Similarity=(2-sum(abs(Rectangle_Standard_DRLBP_bin(:)-DRLBP_bin(:))))/2;
Triangle_DRLBP_Similarity=(2-sum(abs(Triangle_Standard_DRLBP_bin(:)-DRLBP_bin(:))))/2;
Circle_DRLBP_Similarity=(2-sum(abs(Circle_Standard_DRLBP_bin(:)-DRLBP_bin(:))))/2;
Pentagon_DRLBP_Similarity=(2-sum(abs(Pentagon_Standard_DRLBP_bin(:)-DRLBP_bin(:))))/2;
Diamond_DRLBP_Similarity=(2-sum(abs(Diamond_Standard_DRLBP_bin(:)-DRLBP_bin(:))))/2;
Sim_Max=max([Square_DRLBP_Similarity,Rectangle_DRLBP_Similarity,Triangle_DRLBP_Similarity,Circle_DRLBP_Similarity,Pentagon_DRLBP_Similarity,Diamond_DRLBP_Similarity]);
if(Sim_Max>0.66)
    if(Sim_Max==Square_DRLBP_Similarity)
        fprintf('DRLBP Histogram comparison shows that the Pattern obtained is that of a Square with percentage similarity:%d o/o\n',uint8(Square_DRLBP_Similarity*100));
    elseif(Sim_Max==Rectangle_DRLBP_Similarity)
        fprintf('DRLBP Histogram comparison shows that the Pattern obtained is that of a Rectangle with percentage similarity:%d o/o\n',uint8(Rectangle_DRLBP_Similarity*100));     
    elseif(Sim_Max==Triangle_DRLBP_Similarity)
        fprintf('DRLBP Histogram comparison shows that the Pattern obtained is that of a Triangle with percentage similarity:%d o/o\n',uint8(Triangle_DRLBP_Similarity*100));  
    elseif(Sim_Max==Circle_DRLBP_Similarity)
        fprintf('DRLBP Histogram comparison shows that the Pattern obtained is that of a Circle with percentage similarity:%d o/o\n',uint8(Circle_DRLBP_Similarity*100));  
    elseif(Sim_Max==Pentagon_DRLBP_Similarity)
        fprintf('DRLBP Histogram comparison shows that the Pattern obtained is that of a Pentagon with percentage similarity:%d o/o\n',uint8(Pentagon_DRLBP_Similarity*100));  
    else
        fprintf('DRLBP Histogram comparison shows that the Pattern obtained is that of a Diamond with percentage similarity:%d o/o\n',uint8(Diamond_DRLBP_Similarity*100));          
    end;
else
    disp('DRLBP algorithm fails to identify the current figure');
end;
Square_LTP_Similarity=(2-sum(abs(Square_Standard_LTP_bin(:)-LTP_bin(:))))/2;
Rectangle_LTP_Similarity=(2-sum(abs(Rectangle_Standard_LTP_bin(:)-LTP_bin(:))))/2;
Triangle_LTP_Similarity=(2-sum(abs(Triangle_Standard_LTP_bin(:)-LTP_bin(:))))/2;
Circle_LTP_Similarity=(2-sum(abs(Circle_Standard_LTP_bin(:)-LTP_bin(:))))/2;
Pentagon_LTP_Similarity=(2-sum(abs(Pentagon_Standard_LTP_bin(:)-LTP_bin(:))))/2;
Diamond_LTP_Similarity=(2-sum(abs(Diamond_Standard_LTP_bin(:)-LTP_bin(:))))/2;
Sim_Max=max([Square_LTP_Similarity,Rectangle_LTP_Similarity,Triangle_LTP_Similarity,Circle_LTP_Similarity,Pentagon_LTP_Similarity,Diamond_LTP_Similarity]);
if(Sim_Max>0.66)
    if(Sim_Max==Square_LTP_Similarity)
        fprintf('LTP Histogram comparison shows that the Pattern obtained is that of a Square with percentage similarity:%d o/o\n',uint8(Square_LTP_Similarity*100));
    elseif(Sim_Max==Rectangle_LTP_Similarity)
        fprintf('LTP Histogram comparison shows that the Pattern obtained is that of a Rectangle with percentage similarity:%d o/o\n',uint8(Rectangle_LTP_Similarity*100));     
    elseif(Sim_Max==Triangle_LTP_Similarity)
        fprintf('LTP Histogram comparison shows that the Pattern obtained is that of a Triangle with percentage similarity:%d o/o\n',uint8(Triangle_LTP_Similarity*100));  
    elseif(Sim_Max==Circle_LTP_Similarity)
        fprintf('LTP Histogram comparison shows that the Pattern obtained is that of a Circle with percentage similarity:%d o/o\n',uint8(Circle_LTP_Similarity*100));  
    elseif(Sim_Max==Pentagon_LTP_Similarity)
        fprintf('LTP Histogram comparison shows that the Pattern obtained is that of a Pentagon with percentage similarity:%d o/o\n',uint8(Pentagon_LTP_Similarity*100));  
    else
        fprintf('LTP Histogram comparison shows that the Pattern obtained is that of a Diamond with percentage similarity:%d o/o\n',uint8(Diamond_LTP_Similarity*100));
    end;
else
    disp('LTP algorithm fails to identify the current figure');
end;
Square_RLTP_Similarity=(2-sum(abs(Square_Standard_RLTP_bin(:)-RLTP_bin(:))))/2;
Rectangle_RLTP_Similarity=(2-sum(abs(Rectangle_Standard_RLTP_bin(:)-RLTP_bin(:))))/2;
Triangle_RLTP_Similarity=(2-sum(abs(Triangle_Standard_RLTP_bin(:)-RLTP_bin(:))))/2;
Circle_RLTP_Similarity=(2-sum(abs(Circle_Standard_RLTP_bin(:)-RLTP_bin(:))))/2;
Pentagon_RLTP_Similarity=(2-sum(abs(Pentagon_Standard_RLTP_bin(:)-RLTP_bin(:))))/2;
Diamond_RLTP_Similarity=(2-sum(abs(Diamond_Standard_RLTP_bin(:)-RLTP_bin(:))))/2;
Sim_Max=max([Square_RLTP_Similarity,Rectangle_RLTP_Similarity,Triangle_RLTP_Similarity,Circle_RLTP_Similarity,Pentagon_RLTP_Similarity,Diamond_RLTP_Similarity]);
if(Sim_Max>0.66)
    if(Sim_Max==Square_RLTP_Similarity)
        fprintf('RLTP Histogram comparison shows that the Pattern obtained is that of a Square with percentage similarity:%d o/o\n',uint8(Square_RLTP_Similarity*100));
    elseif(Sim_Max==Rectangle_RLTP_Similarity)
        fprintf('RLTP Histogram comparison shows that the Pattern obtained is that of a Rectangle with percentage similarity:%d o/o\n',uint8(Rectangle_RLTP_Similarity*100));     
    elseif(Sim_Max==Triangle_RLTP_Similarity)
        fprintf('RLTP Histogram comparison shows that the Pattern obtained is that of a Triangle with percentage similarity:%d o/o\n',uint8(Triangle_RLTP_Similarity*100));  
    elseif(Sim_Max==Circle_RLTP_Similarity)
        fprintf('RLTP Histogram comparison shows that the Pattern obtained is that of a Circle with percentage similarity:%d o/o\n',uint8(Circle_RLTP_Similarity*100));  
    elseif(Sim_Max==Pentagon_RLTP_Similarity)
        fprintf('RLTP Histogram comparison shows that the Pattern obtained is that of a Pentagon with percentage similarity:%d o/o\n',uint8(Pentagon_RLTP_Similarity*100));  
    else
        fprintf('RLTP Histogram comparison shows that the Pattern obtained is that of a Diamond with percentage similarity:%d o/o\n',uint8(Diamond_RLTP_Similarity*100));          
    end;
else
    disp('RLTP algorithm fails to identify the current figure');
end;
Square_DRLTP_Similarity=(2-sum(abs(Square_Standard_DRLTP_bin(:)-DRLTP_bin(:))))/2;
Rectangle_DRLTP_Similarity=(2-sum(abs(Rectangle_Standard_DRLTP_bin(:)-DRLTP_bin(:))))/2;
Triangle_DRLTP_Similarity=(2-sum(abs(Triangle_Standard_DRLTP_bin(:)-DRLTP_bin(:))))/2;
Circle_DRLTP_Similarity=(2-sum(abs(Circle_Standard_DRLTP_bin(:)-DRLTP_bin(:))))/2;
Pentagon_DRLTP_Similarity=(2-sum(abs(Pentagon_Standard_DRLTP_bin(:)-DRLTP_bin(:))))/2;
Diamond_DRLTP_Similarity=(2-sum(abs(Diamond_Standard_DRLTP_bin(:)-DRLTP_bin(:))))/2;
Sim_Max=max([Square_DRLTP_Similarity,Rectangle_DRLTP_Similarity,Triangle_DRLTP_Similarity,Circle_DRLTP_Similarity,Pentagon_DRLTP_Similarity,Diamond_DRLTP_Similarity]);
if(Sim_Max>0.66)
    if(Sim_Max==Square_DRLTP_Similarity)
        fprintf('DRLTP Histogram comparison shows that the Pattern obtained is that of a Square with percentage similarity:%d o/o\n',uint8(Square_DRLTP_Similarity*100));
    elseif(Sim_Max==Rectangle_DRLTP_Similarity)
        fprintf('DRLTP Histogram comparison shows that the Pattern obtained is that of a Rectangle with percentage similarity:%d o/o\n',uint8(Rectangle_DRLTP_Similarity*100));     
    elseif(Sim_Max==Triangle_DRLTP_Similarity)
        fprintf('DRLTP Histogram comparison shows that the Pattern obtained is that of a Triangle with percentage similarity:%d o/o\n',uint8(Triangle_DRLTP_Similarity*100));  
    elseif(Sim_Max==Circle_DRLTP_Similarity)
        fprintf('DRLTP Histogram comparison shows that the Pattern obtained is that of a Circle with percentage similarity:%d o/o\n',uint8(Circle_DRLTP_Similarity*100));  
    elseif(Sim_Max==Pentagon_DRLTP_Similarity)
        fprintf('DRLTP Histogram comparison shows that the Pattern obtained is that of a Pentagon with percentage similarity:%d o/o\n',uint8(Pentagon_DRLTP_Similarity*100));  
    else
        fprintf('DRLTP Histogram comparison shows that the Pattern obtained is that of a Diamond with percentage similarity:%d o/o\n',uint8(Diamond_DRLTP_Similarity*100));          
    end;
else
    disp('DRLTP algorithm fails to identify the current figure');
end;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档