八度,套接字连接接收到的显示图像不显示
Octave, display image received by socket connection does't show
我有一个 Octave 脚本,我在其中打开套接字服务器并从连接的客户端接收一些命令。这已经有效。现在我需要将数据发送到 Octave,主要是图像并处理它们。为了对此进行测试,我想接收并显示灰度测试图像。
bufflen = 4096;
[data,count]=recv(b,bufflen);
imshow (data)
图像 window 打开但它是空的。数据的大小正好是我发送的图像文件的大小。我还尝试用
保存图像
imwrite (data, "test.jpg");
这生成了一个文件,但图像的每一行都在一个长行中。当我用
打开图像时
imshow test.jpg
一切正常,图像 window 出现并显示图像。
我正在使用
通过 netcat 发送数据
>ncat.exe 127.0.0.1 12346 < test.jpg
这似乎有效,我能够将图像传输到另一台电脑并在那里查看。
非常感谢每一个提示或提示,谢谢。
这里猜测是因为您没有提供太多信息,但听起来您的数据是以矢量形式出现的,您需要将其重新整形为数组 imshow
>> newdata = reshape(data, 64, 64)
你没有给我们展示输入数据的例子,所以也有可能你的数据是一串字符,而图像数组需要是数值。要在重塑之前进行验证,您可以 运行:
>> class(data)
如果是这样,您需要将其转换为数值数组。您可以为此使用 str2num
,但具体如何操作将取决于字符串的外观、是否有值分隔符等。
参见:
https://www.gnu.org/software/octave/doc/interpreter/String-Conversions.html
您正在将 jpeg 作为字节流 (ncat.exe 127.0.0.1 12346 < test.jpg
) 发送,但您正试图使用 imshow
显示它,因为它是未压缩的 RGB、灰度或索引图像。您可以接收它并将其保存到临时文件中,然后使用 imread 加载它。在这种情况下,graphics/image-magick 将为您完成从 JPE 到 RGB 的解压缩。
我有一个 Octave 脚本,我在其中打开套接字服务器并从连接的客户端接收一些命令。这已经有效。现在我需要将数据发送到 Octave,主要是图像并处理它们。为了对此进行测试,我想接收并显示灰度测试图像。
bufflen = 4096;
[data,count]=recv(b,bufflen);
imshow (data)
图像 window 打开但它是空的。数据的大小正好是我发送的图像文件的大小。我还尝试用
保存图像imwrite (data, "test.jpg");
这生成了一个文件,但图像的每一行都在一个长行中。当我用
打开图像时imshow test.jpg
一切正常,图像 window 出现并显示图像。
我正在使用
通过 netcat 发送数据>ncat.exe 127.0.0.1 12346 < test.jpg
这似乎有效,我能够将图像传输到另一台电脑并在那里查看。
非常感谢每一个提示或提示,谢谢。
这里猜测是因为您没有提供太多信息,但听起来您的数据是以矢量形式出现的,您需要将其重新整形为数组 imshow
>> newdata = reshape(data, 64, 64)
你没有给我们展示输入数据的例子,所以也有可能你的数据是一串字符,而图像数组需要是数值。要在重塑之前进行验证,您可以 运行:
>> class(data)
如果是这样,您需要将其转换为数值数组。您可以为此使用 str2num
,但具体如何操作将取决于字符串的外观、是否有值分隔符等。
参见:
https://www.gnu.org/software/octave/doc/interpreter/String-Conversions.html
您正在将 jpeg 作为字节流 (ncat.exe 127.0.0.1 12346 < test.jpg
) 发送,但您正试图使用 imshow
显示它,因为它是未压缩的 RGB、灰度或索引图像。您可以接收它并将其保存到临时文件中,然后使用 imread 加载它。在这种情况下,graphics/image-magick 将为您完成从 JPE 到 RGB 的解压缩。