例如,考虑下面的图像,它是一个unint8格式的jpeg。为什么图像不能完全从逻辑转换回
在我的代码需要对图像处理为unint8
,然后将其转换为logical
,然后在unint8
格式再次使用它。但显然没有办法让它恢复到原来的状态。例如,考虑下面的代码:
image = imread('W1\Writer1_03_02.jpg');
bw_normal = im2bw(image, 0.1);
imshow(bw_normal);
它产生如下图像:
Whichy表明im2bw
在0.1阈完美地工作。但是如果我将它转换为logical
,然后回到unint8
,然后执行上面的命令,结果会非常不同。
image = imread('W1\Writer1_03_02.jpg');
image = im2bw(image,graythresh(image));
image = im2uint8(image);
bw_normal = im2bw(image, 0.1);
imshow(bw_normal);
在这种情况下产生的结果是:
基本上如预期没有奏效。即在每个阈值递增或递减时,图像中显示的单词应分别增大或减小。但是,一旦它转换为逻辑,然后再转回,它就不会发生这种情况。
根据我期望它随着阈值变化的增长和缩小的方式,是否可以将逻辑图像转换回与im2bw
一起使用的方式?
从灰色/彩色转换为二进制图像时,基本上会丢失信息,这至少是您无法接近原始图像的原因之一。但我认为,就你而言,你只需要平滑一点二进制图像,看起来足够接近。 – Divakar