亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

OPENCV去除小連通區域,去除孔洞的實例講解

2020-02-15 21:58:03
字體:
來源:轉載
供稿:網友

一、對于二值圖,0代表黑色,255代表白色。去除小連通區域與孔洞,小連通區域用8鄰域,孔洞用4鄰域。

函數名字為:void RemoveSmallRegion(Mat &Src, Mat &Dst,int AreaLimit, int CheckMode, int NeihborMode)

CheckMode: 0代表去除黑區域,1代表去除白區域; NeihborMode:0代表4鄰域,1代表8鄰域;

如果去除小連通區域CheckMode=1,NeihborMode=1去除孔洞CheckMode=0,NeihborMode=0

記錄每個像素點檢驗狀態的標簽,0代表未檢查,1代表正在檢查,2代表檢查不合格(需要反轉顏色),3代表檢查合格或不需檢查 。

1.先對整個圖像掃描,如果是去除小連通區域,則將黑色的背景圖作為合格,像素值標記為3,如果是去除孔洞,則將白色的色素點作為合格,像素值標記為3。

2.掃面整個圖像,對圖像進行處理。

void RemoveSmallRegion(Mat &Src, Mat &Dst,int AreaLimit, int CheckMode, int NeihborMode){	int RemoveCount = 0;	//新建一幅標簽圖像初始化為0像素點,為了記錄每個像素點檢驗狀態的標簽,0代表未檢查,1代表正在檢查,2代表檢查不合格(需要反轉顏色),3代表檢查合格或不需檢查 	//初始化的圖像全部為0,未檢查	Mat PointLabel = Mat::zeros(Src.size(), CV_8UC1);	if (CheckMode == 1)//去除小連通區域的白色點	{		cout << "去除小連通域.";		for (int i = 0; i < Src.rows; i++)		{			for (int j = 0; j < Src.cols; j++)			{				if (Src.at<uchar>(i, j) < 10)				{					PointLabel.at<uchar>(i, j) = 3;//將背景黑色點標記為合格,像素為3				}			}		}	}	else//去除孔洞,黑色點像素	{		cout << "去除孔洞";		for (int i = 0; i < Src.rows; i++)		{			for (int j = 0; j < Src.cols; j++)			{				if (Src.at<uchar>(i, j) > 10)				{					PointLabel.at<uchar>(i, j) = 3;//如果原圖是白色區域,標記為合格,像素為3				}			}		}	}	vector<Point2i>NeihborPos;//將鄰域壓進容器	NeihborPos.push_back(Point2i(-1, 0));	NeihborPos.push_back(Point2i(1, 0));	NeihborPos.push_back(Point2i(0, -1));	NeihborPos.push_back(Point2i(0, 1));	if (NeihborMode == 1)	{		cout << "Neighbor mode: 8鄰域." << endl;		NeihborPos.push_back(Point2i(-1, -1));		NeihborPos.push_back(Point2i(-1, 1));		NeihborPos.push_back(Point2i(1, -1));		NeihborPos.push_back(Point2i(1, 1));	}	else cout << "Neighbor mode: 4鄰域." << endl;	int NeihborCount = 4 + 4 * NeihborMode;	int CurrX = 0, CurrY = 0;	//開始檢測	for (int i = 0; i < Src.rows; i++)	{		for (int j = 0; j < Src.cols; j++)		{			if (PointLabel.at<uchar>(i, j) == 0)//標簽圖像像素點為0,表示還未檢查的不合格點			{ //開始檢查				vector<Point2i>GrowBuffer;//記錄檢查像素點的個數				GrowBuffer.push_back(Point2i(j, i));				PointLabel.at<uchar>(i, j) = 1;//標記為正在檢查				int CheckResult = 0;				for (int z = 0; z < GrowBuffer.size(); z++)				{					for (int q = 0; q < NeihborCount; q++)					{						CurrX = GrowBuffer.at(z).x + NeihborPos.at(q).x;						CurrY = GrowBuffer.at(z).y + NeihborPos.at(q).y;						if (CurrX >= 0 && CurrX<Src.cols&&CurrY >= 0 && CurrY<Src.rows) //防止越界 						{							if (PointLabel.at<uchar>(CurrY, CurrX) == 0)							{								GrowBuffer.push_back(Point2i(CurrX, CurrY)); //鄰域點加入buffer 								PointLabel.at<uchar>(CurrY, CurrX) = 1;   //更新鄰域點的檢查標簽,避免重復檢查 							}						}					}				}				if (GrowBuffer.size()>AreaLimit) //判斷結果(是否超出限定的大?。?為未超出,2為超出 					CheckResult = 2;				else				{					CheckResult = 1;					RemoveCount++;//記錄有多少區域被去除				}				for (int z = 0; z < GrowBuffer.size(); z++)				{					CurrX = GrowBuffer.at(z).x;					CurrY = GrowBuffer.at(z).y;					PointLabel.at<uchar>(CurrY,CurrX)+=CheckResult;//標記不合格的像素點,像素值為2				}				//********結束該點處的檢查********** 			}		}	}	CheckMode = 255 * (1 - CheckMode);	//開始反轉面積過小的區域 	for (int i = 0; i < Src.rows; ++i)	{		for (int j = 0; j < Src.cols; ++j)		{			if (PointLabel.at<uchar>(i,j)==2)			{				Dst.at<uchar>(i, j) = CheckMode;			}			else if (PointLabel.at<uchar>(i, j) == 3)			{				Dst.at<uchar>(i, j) = Src.at<uchar>(i, j);							}		}	}	cout << RemoveCount << " objects removed." << endl;}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图校园春色| 最近2019年好看中文字幕视频| 日韩中文在线不卡| 97在线视频国产| 国产精品一区二区三区久久久| 亚洲人成电影在线播放| 69av在线播放| 亚洲福利在线播放| 亚洲乱码国产乱码精品精天堂| 精品久久久999| 综合av色偷偷网| 亚洲区中文字幕| 久久久国产精品免费| 精品久久久久久久中文字幕| 久久成人国产精品| 色综合天天狠天天透天天伊人| 亚洲免费视频观看| 中文字幕亚洲第一| 国产精品自产拍在线观| 91亚洲人电影| 国产欧美日韩中文字幕在线| 久久久久久久久国产精品| 亚洲奶大毛多的老太婆| 日本久久精品视频| 欧美国产日韩一区二区| 午夜精品久久久久久99热软件| 在线视频精品一| 欧美激情三级免费| 欧美裸体男粗大视频在线观看| 欧美疯狂做受xxxx高潮| 欧美在线日韩在线| 亚洲国产欧美在线成人app| 亚洲欧洲视频在线| 久久精品久久久久久国产 免费| 精品久久久视频| 国产经典一区二区| 欧美性xxxx极品hd满灌| 粗暴蹂躏中文一区二区三区| 一区二区福利视频| 日韩精品有码在线观看| 亚洲女人天堂视频| 欧美亚洲另类激情另类| 欧美性生交xxxxxdddd| 九九热这里只有精品6| 久久免费精品日本久久中文字幕| 亚洲成人国产精品| 精品在线欧美视频| 亚洲国产精品一区二区久| 欧美性精品220| 91深夜福利视频| 国内精品在线一区| 国产网站欧美日韩免费精品在线观看| 亚洲国产日韩欧美综合久久| 成人免费福利视频| 亚洲视频第一页| 九九热r在线视频精品| 国产91精品青草社区| 欧美国产高跟鞋裸体秀xxxhd| 国产精品美女av| 国产欧美va欧美va香蕉在| 欧美黑人视频一区| 国产精品综合不卡av| 亚洲最新av在线网站| 日韩精品在线影院| 成人亚洲欧美一区二区三区| 91视频8mav| 国产中文欧美精品| 国产精品 欧美在线| 日韩av电影手机在线观看| 欧美大肥婆大肥bbbbb| 国产精品久久久久久av福利软件| 91麻豆桃色免费看| 有码中文亚洲精品| 国产成人精品国内自产拍免费看| 欧美精品在线免费| 精品久久久久久久久久久| 日本精品视频在线| 色哟哟网站入口亚洲精品| 成人欧美在线观看| 中文字幕在线日韩| 久久人人爽人人爽人人片av高请| 亚洲福利在线视频| 91成人在线视频| 最近2019中文字幕一页二页| 亚洲人成电影网站色| 成人妇女淫片aaaa视频| 国产91在线播放九色快色| 色伦专区97中文字幕| 在线中文字幕日韩| 伊人久久综合97精品| 久久久久久综合网天天| 亚洲成人精品视频在线观看| 欧美一区二区.| 成人羞羞国产免费| 国产美女久久精品| 亚洲激情自拍图| yellow中文字幕久久| 亚洲韩国日本中文字幕| 国产精品亚洲综合天堂夜夜| 国产亚洲一级高清| 欧美日韩国产色视频| 亚洲欧美另类在线观看| 欧美性猛交xxxx偷拍洗澡| 欧美中文在线免费| 最新中文字幕亚洲| 国产精品青草久久久久福利99| 国产在线精品一区免费香蕉| 亚洲xxxx3d| 亚洲精品日韩久久久| 这里精品视频免费| 精品女同一区二区三区在线播放| 久久久久九九九九| 亚洲高清免费观看高清完整版| 日韩激情片免费| 欲色天天网综合久久| 日韩亚洲成人av在线| 亚洲精品99久久久久中文字幕| 亚洲人精品午夜在线观看| 亚洲综合视频1区| 国产成人福利网站| 日韩在线观看免费| 国产区精品视频| 亚洲一区二区精品| 亚洲欧美日韩中文视频| 丝袜美腿精品国产二区| 欧美成年人视频网站| 成人黄色片网站| 欧美大片在线免费观看| 亚洲欧美日韩国产中文专区| 人体精品一二三区| 久久不射电影网| 精品国产一区二区三区久久狼5月| 久久精品视频在线播放| 69久久夜色精品国产69| 亚洲最新av网址| 中文欧美日本在线资源| 97热在线精品视频在线观看| 91久久精品视频| 日本久久久久亚洲中字幕| 欧美性色视频在线| 亚洲精品欧美日韩| 欧美成人剧情片在线观看| 国产精品久久久久久久久久免费| 亚洲第一男人天堂| 久久偷看各类女兵18女厕嘘嘘| 久久综合国产精品台湾中文娱乐网| 伊人精品在线观看| 国产精品99久久久久久久久| 国自在线精品视频| 亚洲综合精品一区二区| 久久久91精品| 91tv亚洲精品香蕉国产一区7ujn| 国产成人avxxxxx在线看| 欧美在线不卡区| 国产精品扒开腿做| 一道本无吗dⅴd在线播放一区| 国产亚洲欧美日韩美女| 国模精品视频一区二区| 亚洲精品不卡在线| 91精品久久久久久久久不口人| 国产亚洲精品va在线观看| 国产精品免费小视频| 91精品国产综合久久香蕉| 国产91精品黑色丝袜高跟鞋|