Octave,套接字连接收到的显示图像不显示

时间:2017-05-17 15:51:00

标签: image sockets octave

我有一个八度脚本,我打开一个套接字服务器,从连接的客户端接收一些命令。这已经有效了。现在我需要将数据发送到Octave,主要是图像并处理它们。为了测试这个,我想接收并显示灰度测试图像。

bufflen = 4096;
[data,count]=recv(b,bufflen);
imshow (data)

图像窗口打开但它是空的。数据大小正是我发送的图像文件的大小。我也尝试用

保存图像
imwrite (data, "test.jpg");

这产生了一个文件,但图像的每一行都在一条长行中。当我用

打开图像时
imshow test.jpg

一切正常,图像窗口出现并显示图像。

我通过netcat发送数据

>ncat.exe 127.0.0.1 12346 < test.jpg

这似乎有效,我能够将图像传输到另一台PC并在那里查看。

非常感谢每一个提示或提示,谢谢。

2 个答案:

答案 0 :(得分:0)

在这里猜测,因为你没有提供太多信息,但听起来你的数据是作为一个向量而来的,你需要将它重新整形为imshow的数组

>> newdata = reshape(data, 64, 64)

您还没有向我们展示输入数据的示例,因此您的数据也可能是一串字符,而图像数组则需要是数值。要在重塑之前进行验证,您可以运行:

>> class(data)

如果是这样,您需要将其转换为数值数组。您可以使用str2num,但具体如何操作将取决于字符串的外观,是否有值分隔符等。

见:

https://www.gnu.org/software/octave/doc/interpreter/String-Conversions.html

答案 1 :(得分:0)

您正在将jpeg作为字节流(For Each element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("img") If element.GetAttribute("alt") = "all" Then element.InvokeMember("click") End If Next )发送,但您尝试显示的是ncat.exe 127.0.0.1 12346 < test.jpg,因为它将是未压缩的RGB,灰度或索引图像。您可以接收它并将其保存到临时文件,然后使用imread加载它。在这种情况下,graphics / image-magick将从JPE到RGB进行解压缩。