<div>BYTE R,G,B,GRAY;</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>if(BmInfo.bmiHeader.biBitCount == 24)</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>for(i=0;i<BmInfo.bmiHeader.biHeight;i++)</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>for(j=0;j<BmInfo.bmiHeader.biWidth;j++)</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>{</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>R = *(lpVHdr->lpData+(i*3)+2);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>G = *(lpVHdr->lpData+(i*3)+1);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>B = *(lpVHdr->lpData+(i*3)+0);</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>GRAY = (BYTE)(0.299*R + 0.587*G + 0.114*B);</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>if(GRAY > 100) GRAY = 255;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>else GRAY = 0;</div> <div><br /></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>*(temp+i*BmInfo.bmiHeader.biWidth*3+j*3+0) =*(temp+i*BmInfo.bmiHeader.biWidth*3+j*3+1)= *(temp+i*BmInfo.bmiHeader.biWidth*3+j*3+2) = GRAY;</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span></div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>}</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>}</div> <div><span class="Apple-tab-span" style="white-space: pre"> </span>}</div> <div>캠에서 컬러영상을 받아서 그 값을 r,g,b로 분리시킨다음 영상에서 가져온 r,g,b 값을 1차적으로 grayscale화 시킨뒤 GRAY라는 변수에 값을 저장해두고</div> <div>이진화를 시켜서 일정값 이상일경우 흑 일정값 이하일 경우 백으로 표현하려고합니다. 알고리즘이 끝나고나면</div> <div>temp라는 포인터배열을 사용하여 출력하는 부분인데 흑과 백은 어차피 000 아니면 255255255 두가지밖에 없으니까</div> <div>*(temp+i*BmInfo.bmiHeader.biWidth*3+j*3+0) =*(temp+i*BmInfo.bmiHeader.biWidth*3+j*3+1)</div> <div>= *(temp+i*BmInfo.bmiHeader.biWidth*3+j*3+2) = GRAY; </div> <div>이런식으로 표현하였습니다. 근데여기서 궁금한점은 캠을 출력하면 원본영상부분에서는 문제없이 인식이되는데</div> <div>제가 이진화알고리즘을 넣고 돌린 영상쪽에서는 어두운 부분에 캠이 들어가면 화면전체가 검은색이되버리고 밝은부분에선 화면전체가 백색이 되어버립니다.</div> <div><br /></div> <div>어떤식으로 코드를 변경해야될지 몰라서 질문드렸는데 질문글이 정리가안되고 두서없어서 죄송합니다.</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.