<div>아무리 봐도 해결책을 못찾아 결국 다시 찾아왔습니다...ㅜㅅㅜ</div> <div> </div> <div>MFC랑 연계한건데, 주요 함수만 긁어오면</div> <div><br></div> <div>void COpenCV_MFCDlg::OnPaint()<br>{<br> if (IsIconic())<br> {<br> ....<br> }<br> else<br> {<br> if(m_pImage)<br> {<br> CDC* pDC;<br> CRect rect;</div> <div> pDC = m_stDisplay.GetDC();<br> m_stDisplay.GetClientRect(&rect);</div> <div> m_cImage.CopyOf(m_pImage);<br> m_cImage.DrawToHDC(pDC->m_hDC, rect);</div> <div> ReleaseDC(pDC);<br> }</div> <div> CDialogEx::OnPaint();<br> }<br>}</div> <div><br></div> <div>요놈과</div> <div><br></div> <div>void COpenCV_MFCDlg::OnBnClickedButton3()<br>{<br> if(m_pImage != NULL)<br> cvReleaseImage(&m_pImage);<br> <br> m_pImage = cvLoadImage("LS.jpg", -1);<br> <br> Invalidate(FALSE);<br>}</div> <div><br></div> <div>이 방법으로 버튼을 누르면 Dialog에 이미지를 출력하도록 해줘씀다.</div> <div><br></div> <div><br></div> <div><br></div> <div>그리고 </div> <div><br></div> <div>void COpenCV_MFCDlg::OnBnClickedCheck1()<br>{<br> if(!m_bBinarize)<br> cvNamedWindow("BINARY",0);<br> else<br> cvDestroyWindow("BINARY");</div> <div> m_bBinarize = !m_bBinarize;</div> <div> UpdateData(FALSE);<br>}</div> <div><br></div> <div>이 방법으로, 체크박스에 체크를 하면 새로운 윈도우 창을 생성하도록 해주었지요.</div> <div><br></div> <div>새로운 윈도우창에 무엇을 내보낼거냐?</div> <div><br></div> <div>바로 이진화 시킨 이미지를 출력하려고 하는데요..</div> <div><br></div> <div>void COpenCV_MFCDlg::OnTimer(UINT_PTR nIDEvent)<br>{<br> if(m_bBinarize)<br> {<br> IplImage* gray = cvCreateImage(cvGetSize(m_pImage), IPL_DEPTH_8U, 1);</div> <div> cvCvtColor(m_pImage, gray, CV_RGB2GRAY);</div> <div> cvThreshold(gray, gray, 127.0, 255.0, CV_THRESH_OTSU);</div> <div> cvShowImage("BINARY", gray);</div> <div> cvReleaseImage(&gray);<br> }<br> <br> Invalidate(FALSE);</div> <div> CDialogEx::OnTimer(nIDEvent);<br>}</div> <div><br></div> <div>이렇게 해줬더니, 새로운 윈도우창은 뜨는데 새로운 윈도우 창에 이진화한 이미지가 안뜨네요..</div> <div><br></div> <div>왜그런걸까요 ㅠ_ㅠ<br></div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.