У меня есть программа opencv в качестве сервера для отправки потока изображений с камеры. Теперь мне нужно сделать c# программу для удаленного открытия программы opencv.
все хорошо, используя s sh через cmd. например:
ssh myname@ip
export DISPLAY=":0"
~/home/MyName/MyOpencvProgram
, и я вижу всплывающее окно imshow windows на моем сервере.
Теперь я хочу сделать это в c# программе WPF, поэтому я использую пакет S SH. 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();
}
из выходных данных. Execute () я вижу программа работает Однако он всегда останавливается, когда встречается какая-то функция GUI, такая как namedwindow () , imshow () или waitKey () . Все это работает нормально, когда используйте s sh через cmd, и я думаю, что команды export DISPLAY = ": 0" достаточно, чтобы решить эту проблему. Но все равно остановилось.
Что мне теперь делать?