범위 강조 변환 이란?
영상에서 한 부분의 화소는 원 상태를 그대로 유지한 채 일정 범위의 화소만 강조하는 변환
원하는 부분의 화소 값이 더 커지거나 작아져 다른 부분과 비교해서 더욱 도드라져 보임
기존의 영상을 출력해주고 다시 이진화로 변환된 영상을 출력해준다.
void CImageprocesingView::OnDraw(CDC* pDC) { CImageprocesingDoc* pDoc = GetDocument(); // 도큐먼트클래스참조 ASSERT_VALID(pDoc); int i, j; unsigned char R, G, B; for(i=0 ; i<pDoc->m_height ; i++){ for(j=0 ; j<pDoc->m_width ; j++){ R = G = B = pDoc->m_InputImage[i*pDoc->m_width+j]; pDC->SetPixel(j+5, i+5, RGB(R, G, B)); } } for(i= 0 ; i<pDoc->m_Re_height; i++){ for(j = 0 ; j<pDoc->m_Re_width; j++){ R = pDoc->m_OutputImage[i*pDoc->m_Re_width+j]; G = B = R; pDC->SetPixel(j+pDoc->m_width+10, i+5, RGB(R, G, B)); } } } |
범위반전 코드
void CImageprocesingDoc::OnStressTransform2() { CRangeofstress2 dlg; int i; m_Re_height = m_height; m_Re_width = m_width; m_Re_size = m_Re_height * m_Re_width; m_OutputImage = new unsigned char[m_Re_size]; if(dlg.DoModal() == IDOK){ for(i=0 ; i<m_size ; i++){ // 입력값이강조시작값과강조종료값사이에위치하면출력 if(m_InputImage[i] >= dlg.m_Start1 && m_InputImage[i] <= dlg.m_End1) m_OutputImage[i] = dlg.m_value; else m_OutputImage[i] = m_InputImage[i]; } } } |
'Programing > OpenCV' 카테고리의 다른 글
gray scale (0) | 2016.11.30 |
---|---|
Opencv c# 2 (0) | 2016.11.30 |
Opencv c# (0) | 2016.11.30 |
SIFT 알고리즘 (0) | 2016.11.30 |
이진화 (0) | 2016.11.30 |