level 1
sky铃喵
楼主
如题,编程萌新一只,胡乱拼凑的代码不知道问题出在哪。。。求大神解救
#include "StdAfx.h"
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat MatIn=imread("D:\\qaq.png",0);
Mat MatOut(MatIn.size(),CV_8UC1,Scalar(0));
int DIR[8][12]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
//种子点0,0
int i=0,j=0;
while(i<MatIn.rows)
{ while(j<MatIn.cols)
{ for(int iNum=0;iNum<9;iNum++)
{
int iCurPosX=i+DIR[iNum][0]; //Xzuo3 pin2 you3
int iCurPosY=j+DIR[iNum][1]; //Yru DIR
//如果周围某点不是边框点
if(iCurPosX>0 && iCurPosX<(MatIn.rows-1) && iCurPosY>0 && iCurPosY<(MatIn.cols-1))
{ //此点像素绝对值小于判读条件,此点为白
if(abs(MatIn.at<uchar>(i,j)-MatIn.at<uchar>(iCurPosX,iCurPosY))<5 )
{ //生长
MatOut.at<uchar>(iCurPosX,iCurPosY)=255;
i=iCurPosX;
j=iCurPosY;
}
}
}
}
}
imshow("1",MatOut);
cvWaitKey(0);
}
2017年04月27日 01点04分
1
#include "StdAfx.h"
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat MatIn=imread("D:\\qaq.png",0);
Mat MatOut(MatIn.size(),CV_8UC1,Scalar(0));
int DIR[8][12]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
//种子点0,0
int i=0,j=0;
while(i<MatIn.rows)
{ while(j<MatIn.cols)
{ for(int iNum=0;iNum<9;iNum++)
{
int iCurPosX=i+DIR[iNum][0]; //Xzuo3 pin2 you3
int iCurPosY=j+DIR[iNum][1]; //Yru DIR
//如果周围某点不是边框点
if(iCurPosX>0 && iCurPosX<(MatIn.rows-1) && iCurPosY>0 && iCurPosY<(MatIn.cols-1))
{ //此点像素绝对值小于判读条件,此点为白
if(abs(MatIn.at<uchar>(i,j)-MatIn.at<uchar>(iCurPosX,iCurPosY))<5 )
{ //生长
MatOut.at<uchar>(iCurPosX,iCurPosY)=255;
i=iCurPosX;
j=iCurPosY;
}
}
}
}
}
imshow("1",MatOut);
cvWaitKey(0);
}