opencv를 처음 사용하고 windows7U (64 비트)에서 opencv2.4.5를 VS10C++과 함께 사용하고 있습니다. 내 프로젝트는 범위 140에서 160 사이의 임계 값 처리 후 이미지를 표시하는 것입니다. 그러나 마지막 줄에서 전화를 겁니다.opencv에서 여러 범위 사이의 임계 값을 설정하는 방법
아래 코드는 내 코드입니다.
int main(int argc, char* argv[])
{
//open the video
VideoCapture cap2(argv[2]);
if (!cap2.isOpened())
{
cout << "Cannot open the video file" << endl;
return -1;
}
//Threshold value of 140 to 160
if(cap2.isOpened())
{
Mat frame, frame_gray, result;
for(;;)
{
int n;
int t1=140, t2=160;
n = 255;
cap2>>frame;
cvtColor(frame, frame_gray, CV_BGR2GRAY);
for (int i=0;i<frame_gray.size().height;i++)
{
for(int j=0;j<frame_gray.size().width;j++)
{
uchar val;
val = frame_gray.at<uchar>(j,i);
if (val>t1 && val<t2)
{val=255;}
else
{val=0;}
frame_gray.at<uchar>(j,i)=val;
}
프로세스 루프 다중 범위 임계 값 이후에 결과를 어떻게 표시합니까?
에 코드를 변경, 컴파일 예제 및 실행을 게시하시기 바랍니다. 또한 thresholding 코드에는 segfaults라는 버그가 있습니다. 이는 수동으로 이미지를 반복하는 동안 인덱싱 오류가 발생할 가능성이 높습니다. Haris가'inRange()'를 사용 하자는 제안은 훨씬 더 좋으며 에러가 발생하기 쉬운 솔루션입니다. – Aurelius