python和matlab中相同的二值图像不同

2024-04-23 14:27:31 发布

您现在位置:Python中文网/ 问答频道 /正文

好的。我完全糊涂了。我有一个二值图像。值(据称)为0和1。我在Matlab中阅读,以验证:

binaryImage = imread('binary.png');

我得到最大值和最小值,值分别是1和0。你知道吗

maxValue = max(binaryImage(:));
minValue = max(binaryImage(:));

我用同样的二进制图像,用Python来读。。。你知道吗

from scipy.misc import imread

为了得到像素值,我们将其展平

li = img.flatten()

# check each value
for s in li:
    print s

根据Python,值是0和255。你知道吗

所以。。。这是否意味着如果我使用C++(ITK),我会得到不同的值?如果我使用OpenCV,我会得到一个不同的值?(从技术上讲,“on”值应该只有1和255,但你知道我的意思。)

如果像素为“开”(白色),并且我将该值设置为1(在二进制图像中),那么无论我用什么语言读取它,我都希望看到该值为1。你知道吗

怎么会不一样呢?你知道吗

谢谢!你知道吗


Tags: from图像png二进制像素limaxbinary
1条回答
网友
1楼 · 发布于 2024-04-23 14:27:31

matlab支持逻辑数组,scipy将图像转换为灰度。根据您想做什么,您可以将灰度图像转换为逻辑图像

bit_img = img > 127

或者在matlab中将逻辑数组转换为int8

img = int8(binary_image) * 255

相关问题 更多 >