Matlab图像块处理
我想要的是,得到一个图像,把它分解成nxn块,对每个块应用标准偏差,然后使其成为二进制 所有这些都是从图像中获取文本的一部分。到目前为止,我想找出感兴趣的地区 为什么第三张图片是这样的呢 原始图像: 缩放 您加载的图像可能包含Matlab图像块处理,matlab,image-processing,Matlab,Image Processing,我想要的是,得到一个图像,把它分解成nxn块,对每个块应用标准偏差,然后使其成为二进制 所有这些都是从图像中获取文本的一部分。到目前为止,我想找出感兴趣的地区 为什么第三张图片是这样的呢 原始图像: 缩放 您加载的图像可能包含uint8值(0到255)。然后通过blockproc对其执行std2。其输出类型为双精度,但尚未缩放,因此其中的值与原始值具有相似的数量级 然后在没有任何输入的情况下调用im2bw。这会将阈值级别设置为0.5,如果您假定double类型的图像缩放范围在0和1之间(许多MA
uint8
值(0到255)。然后通过blockproc
对其执行std2
。其输出类型为双精度,但尚未缩放,因此其中的值与原始值具有相似的数量级
然后在没有任何输入的情况下调用im2bw
。这会将阈值级别设置为0.5,如果您假定double类型的图像缩放范围在0和1之间(许多MATLAB图像处理的标准假设),这是一个合理的设置。但是,在您的例子中,显然大多数值都在0.5以上,因此绝大多数显示为白色
两种选择:
1) 缩放图像(例如,将图像传递到blockproc
2) 给
im2bw
一个阈值。您可以使用graysthresh
自动计算一个,例如BW=im2bw(J,graysthresh(J))代码>
请注意,此缩放问题将影响其他图像处理过程和保存图像。类型为double的图像,或者您要对其进行处理,使其加倍?在处理之前,请确保它在0和1之间缩放,或im2double
。这样,当保存的图像显示为空白时,您就不用再回来问问题了。缩放
您加载的图像可能包含uint8
值(0到255)。然后通过blockproc
对其执行std2
。其输出类型为双精度,但尚未缩放,因此其中的值与原始值具有相似的数量级
然后在没有任何输入的情况下调用im2bw
。这会将阈值级别设置为0.5,如果您假定double类型的图像缩放范围在0和1之间(许多MATLAB图像处理的标准假设),这是一个合理的设置。但是,在您的例子中,显然大多数值都在0.5以上,因此绝大多数显示为白色
两种选择:
1) 缩放图像(例如,将图像传递到blockproc
2) 给im2bw
一个阈值。您可以使用graysthresh
自动计算一个,例如BW=im2bw(J,graysthresh(J))代码>
请注意,此缩放问题将影响其他图像处理过程和保存图像。类型为double的图像,或者您要对其进行处理,使其加倍?在处理之前,请确保它在0和1之间缩放,或im2double
。这样,当保存的图像显示为空白时,您就不用再回来问问题了。缩放
您加载的图像可能包含uint8
值(0到255)。然后通过blockproc
对其执行std2
。其输出类型为双精度,但尚未缩放,因此其中的值与原始值具有相似的数量级
然后在没有任何输入的情况下调用im2bw
。这会将阈值级别设置为0.5,如果您假定double类型的图像缩放范围在0和1之间(许多MATLAB图像处理的标准假设),这是一个合理的设置。但是,在您的例子中,显然大多数值都在0.5以上,因此绝大多数显示为白色
两种选择:
1) 缩放图像(例如,将图像传递到blockproc
2) 给im2bw
一个阈值。您可以使用graysthresh
自动计算一个,例如BW=im2bw(J,graysthresh(J))代码>
请注意,此缩放问题将影响其他图像处理过程和保存图像。类型为double的图像,或者您要对其进行处理,使其加倍?在处理之前,请确保它在0和1之间缩放,或im2double
。这样,当保存的图像显示为空白时,您就不用再回来问问题了。缩放
您加载的图像可能包含uint8
值(0到255)。然后通过blockproc
对其执行std2
。其输出类型为双精度,但尚未缩放,因此其中的值与原始值具有相似的数量级
然后在没有任何输入的情况下调用im2bw
。这会将阈值级别设置为0.5,如果您假定double类型的图像缩放范围在0和1之间(许多MATLAB图像处理的标准假设),这是一个合理的设置。但是,在您的例子中,显然大多数值都在0.5以上,因此绝大多数显示为白色
两种选择:
1) 缩放图像(例如,将图像传递到blockproc
2) 给im2bw
一个阈值。您可以使用graysthresh
自动计算一个,例如BW=im2bw(J,graysthresh(J))代码>
请注意,此缩放问题将影响其他图像处理过程和保存图像。类型为double的图像,或者您要对其进行处理,使其加倍?在处理之前,请确保它在0和1之间缩放,或im2double
。这将避免您在保存的图像显示为空白时返回此处询问有关的问题。请发布原始图像alone@Benoit_11@Rentonie否,更新您的问题,
clear
I = imread('punk.jpg');
figure; imshow(I);
B=blockproc(I, [4 4], @(x) std2(x.data(:)));
figure;
imshow(B,[]);
J = imresize(B, 4);
figure;
imshow(J,[]);
BW = im2bw(J);
figure;
imshow(BW);