2014-03-05 4 views
4

내가 OpenCV의와 namedWindow를 사용하여 오류 얻을 : (이미지 1)은 Gtk-WARNING ** : 열 수 없습니다 표시 : "opencv : namedWindow() 오류 "디스플레이를 열 수 없습니다"!

코드는 다음과 같습니다

Mat image1 = imread("image1.jpg"); 

cv::namedWindow("image1"); 
cv::imshow("image1",image1); 

waitKey(0); 

사람은 그가하여 해결 말한다을 : "export DISPLAY = : 0". 하지만이 솔루션의 의미는 무엇인지 이해하지 못합니다. opencv 및 C++의 초보자이므로 누군가가 자세히 설명해 주시겠습니까? 예를 들어 코드를 추가하는 방법? 구현할 위치는 어디입니까?

+0

언급 한 솔루션의 출처는 무엇입니까? – AldurDisciple

+0

모르겠다. 인터넷에서 알 수 있듯이 루트 명령 인 것 같다. – user3384116

+0

내보내기는 환경 변수를 설정하며 동일한 세션/터미널에서 실행되어야 환경이 올바르게 변경됩니다. 터미널 외부에서 또는 루트로서 호출해도 아무런 효과가 없습니다. – ypnos

답변

4

X 서버의 컨텍스트가 부족한 것 같습니다.

이 작업을 수행하는 가장 쉬운 방법은 그래픽으로 로그인 한 다음 터미널을 열고 응용 프로그램을 시작하는 것입니다. 즉, 다른 사용자의 세션을 여는 것이 아닙니다. 뿌리.

다른 사용자 또는 원격 사용자로 프로그램을 실행하려면 다른 솔루션이 필요합니다. 당신이하고있는 일을 구체적으로 기술하십시오. 사용 사례에 따라 일반적인 해결책이있는 일반적인 문제 (권한 부여에 관한 문제)입니다! OpenCV 관련 문제는 아닙니다.

+0

X 서버가 무엇인지 모르겠지만. 고맙습니다. – user3384116

+1

X 서버는 그래픽 인터페이스를 담당하므로 윈도우 그리기를 위해 프로그램이 연결해야하는 엔티티입니다. 귀하의 문제는 OpenCV를 통한 귀하의 응용 프로그램이 연결할 X 서버를 찾을 수 없다는 것입니다. DISPLAY 변수는 실제로 로컬 시스템을 나타내는 0.0, 디스플레이 0, 화면 0을 나타내는 빈 문자열로 서버 주소를 제공합니다. – ypnos

+0

아.이 설명은 완벽합니다. 많은 것을 배우고 ... – user3384116

관련 문제