//拿到一張圖,可以先做個訊號過濾 太低的拿掉 double dou; double threshold=110; double maxvalue=255; dou=cvThreshold(img,img,threshold,maxvalue,CV_THRESH_TOZERO); //接著轉灰階,後開始找邊緣 用sobel 可以調兩個方向的階數。 cvCvtColor(img,gray,CV_RGB2GRAY); IplImage *gray16u=cvCreateImage(cvGetSize(gray),IPL_DEPTH_16S,1); cvSobel(gray,gray16u,1,0,3); //如果輸入的是8位元的說,輸出防止溢出的現象 //所以開16位元的給它存 cvConvertScaleAbs(gray16u,gray,1,0); //這個是再把16位元的縮回8位元的指令 //也可以用cvConvertScale cvShowImage( "Example1", gray ); cvWaitKey(0);
沒有留言:
張貼留言