У меня есть программа opencv в качестве сервера для отправки потока изображений с камеры. Теперь мне нужно сделать программу С# для удаленного открытия программы opencv.
все хорошо, используя ssh через cmd. подобно:
ssh myname@ip
export DISPLAY=":0"
~/home/MyName/MyOpencvProgram
и я вижу всплывающее окно imshow на моем серверном компьютере.
Теперь я хочу сделать это в программе С# WPF, поэтому я использую пакет SSH.NET:
public void TrySomeSSh()
{
ConnectionInfo conInfo = new ConnectionInfo(ip, _port, _username, new AuthenticationMethod[]{
new PasswordAuthenticationMethod(_username,_password)});
SshClient sshClient = new SshClient(conInfo);
sshClient.Connect();
if (sshClient.IsConnected)
{
SshCommand output1;
string line1 = "export DISPLAY=\":0\"";
output1 = sshClient.RunCommand(line1);
Console.WriteLine(output1.Execute());
Console.WriteLine(line1);
string line = "/home/MyName/MyOpencvProgram";
Console.WriteLine(line);
var output2 = sshClient.RunCommand(line);
Console.WriteLine(output2.Execute());
}
else
{
Console.WriteLine("not connected");
}
sshClient.Disconnect();
sshClient.Dispose();
}
из output.Execute() я вижу, что программа работает. Однако он всегда останавливался при встрече с какой-либо функцией графического интерфейса, такой как namedwindow() , imshow() или waitKey() . Все они работают нормально. при использовании ssh через cmd, и я думаю, что команды export DISPLAY=":0" достаточно, чтобы решить эту проблему. Но это все равно остановилось.
Что мне теперь делать?