인사말 모든 QT- QImage 및 멀티 스레딩 문제
가에서 이미지를 참조하십시오 : 우리는 전자 현미경에서 MRC 이미지에서 셀 가장자리를 추출 할 수있는 응용 프로그램을 개발하는 http://i48.tinypic.com/316qb78.jpg.
MRC 파일 형식은 체적 픽셀 데이터 (http://en.wikipedia.org/wiki/Voxel)를 저장하며 MRC 파일에서 데이터 (회색조 값)를로드하고 저장하기 위해 3D 문자 배열 (char ***)을 사용합니다.
이미지에서 알 수 있듯이 각각 XY 평면을 표시하는 뷰어가 3 명 있습니다. 뷰어 상단의 스크롤 막대를 사용하여 축을 따라 이미지 조각을 변경합니다.
사용자가 스크롤 막대 위치를 변경할 때 수행하는 단계는 다음과 같습니다.
가이 프로세스는 우리가 위에 검출 곡선 (화소의 집합)을 그리는 QImage 위 *해야 집중 process.During 때문에, 우리는 별도의 스레드에 "에지 검출"처리를 실행하려고1) 새로운 스크롤 치를 취득 (이 선택된 슬라이스)합니다 (relavant 평면)) ZX YZ, XY 또는
2 (숯 * 슬라이스를 생성하며.) 어레이를위한 된 3D 문자를 배열을 읽고 (CHAR ***)
3) 새로운 QImage * (Format_RGB888 작성)을 설정하고, 화소에 의해 선택된 슬라이스 img->와 setPixel (X를 사용 ('슬라이스'를 판독함으로써 값 , y, c);)
4)이 새로운 QImage *는 paintEvent() 메서드로 그려집니다.
. (이는 QT 스레드 외부에서 drawPoint() 메서드를 호출해야 함을 의미합니다.
QImage를 사용하는 것이 가장 좋은 방법입니까?
다른 스레드에서 QT 드로잉 메서드를 실행하는 가장 좋은 방법은 무엇입니까? 사전에
감사, QImage
의 문서에서
그러나 이미지를 화면에 그릴 때 이미지의 현재 상태 만 가져옵니다. 이미지를 더 칠하면 화면에 표시된 내용이 변경되지 않습니다. 이미지를 보여주는 위젯. 운 좋게도 신호/슬롯 또는 타이머로이를 쉽게 해결할 수 있습니다. –