gpt4 book ai didi

matlab - MATLAB 中的局部二进制模式

转载 作者:行者123 更新时间:2023-12-02 11:34:45 26 4
gpt4 key购买 nike

我正在尝试使用图像处理工具箱在 MATLAB 中执行本地二进制模式。当我执行时,我无法获得 LBP 图像和 LBP 直方图。

   clear all;
close all;
clc;
I=imread('test.png');
figure,imshow(I)
%% Crop
I2 = imcrop(I);
figure, imshow(I2)
w=size(I2,1);
h=size(I2,2);
%% LBP
scale = 2.^[7 6 5; 0 -inf 4; 1 2 3];
for i=2:w-1
for j=2:h-1
J0=I2(i,j);
I3(i-1,j-1)=I2(i-1,j-1)>J0;
I3(i-1,j)=I2(i-1,j)>J0;
I3(i-1,j+1)=I2(i-1,j+1)>J0;
I3(i,j+1)=I2(i,j+1)>J0;
I3(i+1,j+1)=I2(i+1,j+1)>J0;
I3(i+1,j)=I2(i+1,j)>J0;
I3(i+1,j-1)=I2(i+1,j-1)>J0;
I3(i,j-1)=I2(i,j-1)>J0;
LBP(i,j)=I3(i-1,j-1)*2^7+I3(i-1,j)*2^6+I3(i-1,j+1)*2^5+I3(i,j+1)*2^4+I3(i+1,j+1)*2^3+I3(i+1,j)*2^2+I3(i+1,j-1)*2^1+I3(i,j-1)*2^0;

end
end
figure,imshow(LBP)
figure,imhist(LBP)

问题是什么。我应该得到从 0 到 255 的数字。enter image description here

最佳答案

I3(i-1,j-1)=I2(i-1,j-1)>J0; 创建逻辑作为输出。如果你不去把它转换成其他东西,你的图像将只是零和一。

最简单的方法是在循环外初始化I3,即在开始循环之前初始化I3=I2;。这样,循环内的所有分配都会转换为 I2 所属的类。

关于matlab - MATLAB 中的局部二进制模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7406314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com