我有一个八度脚本,我打开一个套接字服务器,从连接的客户端接收一些命令。这已经有效了。现在我需要将数据发送到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并在那里查看。
非常感谢每一个提示或提示,谢谢。
答案 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进行解压缩。