我是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;
}
如何在過程循環後顯示結果多個範圍閾值?
今後,請發佈其編譯運行的例子,當粘貼複製。此外,你的閾值代碼包含一個錯誤,這是一個段錯誤 - 這可能是由於在手動迭代圖像時產生索引錯誤。 Haris建議使用'inRange()'是一個更好,更不容易出錯的解決方案。 – Aurelius