1. 程式人生 > >基於改進的LCM的紅外小目標檢測演算法實現

基於改進的LCM的紅外小目標檢測演算法實現

//改進LCM演算法
Mat ImproveLCM(const Mat& SrcImg, int ksize)
{
	if (SrcImg.channels() != 1)
		cvtColor(SrcImg, SrcImg, CV_RGB2GRAY);
	Mat resultImg = SrcImg.clone();
	int delta = ksize + ksize / 2;

	double m[9] = { 0 };
	for (int i = delta; i < SrcImg.rows - delta; i++)
	{
		for (int j = delta; j < SrcImg.cols - delta; j++)
		{

#if 1
			//初始化0
			for (int k = 0; k < 9; k++)
			{
				m[k] = 0;
			}
			//中心塊
			double maxValue = 0;   //中心塊最大值
			for (int i0 = i - ksize / 2; i0 <= i + ksize / 2; i0++)
			{
				for (int j0 = j - ksize / 2; j0 <= j + ksize / 2; j0++)
				{
					m[0] += SrcImg.at<uchar>(i0, j0);
					if (SrcImg.at<uchar>(i0, j0) > maxValue)
					{
						maxValue = SrcImg.at<uchar>(i0, j0);
					}
				}
			}

			//1
			for (int i1 = i - ksize - ksize / 2; i1 <= i - ksize + ksize / 2; i1++)
			{
				for (int j1 = j - ksize - ksize / 2; j1 <= j - ksize + ksize / 2; j1++)
				{
					m[1] += SrcImg.at<uchar>(i1, j1);
				}
			}
			//2
			for (int i2 = i - ksize - ksize / 2; i2 <= i - ksize + ksize / 2; i2++)
			{
				for (int j2 = j - ksize / 2; j2 <= j + ksize / 2; j2++)
				{
					m[2] += SrcImg.at<uchar>(i2, j2);
				}
			}
			//3
			for (int i3 = i - ksize - ksize / 2; i3 <= i - ksize + ksize / 2; i3++)
			{
				for (int j3 = j + ksize - ksize / 2; j3 <= j + ksize + ksize / 2; j3++)
				{
					m[3] += SrcImg.at<uchar>(i3, j3);
				}
			}
			//4
			for (int i4 = i - ksize / 2; i4 <= i + ksize / 2; i4++)
			{
				for (int j4 = j - ksize - ksize / 2; j4 <= j - ksize + ksize / 2; j4++)
				{
					m[4] += SrcImg.at<uchar>(i4, j4);
				}
			}
			//5
			for (int i5 = i - ksize / 2; i5 <= i + ksize / 2; i5++)
			{
				for (int j5 = j + ksize - ksize / 2; j5 <= j + ksize + ksize / 2; j5++)
				{
					m[5] += SrcImg.at<uchar>(i5, j5);
				}
			}
			//6
			for (int i6 = i + ksize - ksize / 2; i6 <= i + ksize + ksize / 2; i6++)
			{
				for (int j6 = j - ksize - ksize / 2; j6 <= j - ksize + ksize / 2; j6++)
				{
					m[6] += SrcImg.at<uchar>(i6, j6);
				}
			}
			//7
			for (int i7 = i + ksize - ksize / 2; i7 <= i + ksize + ksize / 2; i7++)
			{
				for (int j7 = j - ksize / 2; j7 <= j + ksize / 2; j7++)
				{
					m[7] += SrcImg.at<uchar>(i7, j7);
				}
			}
			//8
			for (int i8 = i + ksize - ksize / 2; i8 <= i + ksize + ksize / 2; i8++)
			{
				for (int j8 = j + ksize - ksize / 2; j8 <= j + ksize + ksize / 2; j8++)
				{
					m[8] += SrcImg.at<uchar>(i8, j8);
				}
			}

			for (int kk = 0; kk < 9; kk++)  //求每個子塊的均值
			{
				m[kk] = 1.0 * m[kk] / (ksize*ksize);
			}

			double mDelta = 0;   //八鄰域均值
			for (int ll = 1; ll <= 8; ll++)
			{
				mDelta += 1.0 * m[ll] / 8;
			}
			if (maxValue * m[0] / mDelta > 255)
			{
				resultImg.at<uchar>(i, j) = 255;
			}
			else
			{
				resultImg.at<uchar>(i, j) = maxValue * m[0] / mDelta;
			}
#endif
		}
	}

	return resultImg;
}

相關推薦

基於改進LCM紅外目標檢測演算法實現

//改進LCM演算法 Mat ImproveLCM(const Mat& SrcImg, int ksize) { if (SrcImg.channels() != 1) cvtColor(SrcImg, SrcImg, CV_RGB2GRAY); Mat r

基於深度學習的目標檢測演算法綜述:演算法改進

想了解深度學習的小夥伴們,看一下! 以後自己學深度學習了,再來看此貼! 只能發一個連結了: https://mp.weixin.qq.com/s?__biz=MzU4Nzc0NDI1NA==&mid=2247483731&idx=1&sn=37667093807751

基於深度學習的目標檢測演算法綜述(二)—Two/One stage演算法改進之R-FCN

基於深度學習的目標檢測演算法綜述(一):https://blog.csdn.net/weixin_36835368/article/details/82687919 目錄 1、Two stage 1.1 R-FCN:Object Detection via Region-based

基於深度學習的目標檢測演算法綜述(一)(截止20180821)

參考:https://zhuanlan.zhihu.com/p/40047760 目標檢測(Object Detection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測演算法也從基於手工特徵的傳統演算法轉向了基於深度神經網路的檢測技

基於深度學習的目標檢測演算法綜述(三)(截止20180821)

參考:https://zhuanlan.zhihu.com/p/40102001 基於深度學習的目標檢測演算法綜述分為三部分: 1. Two/One stage演算法改進。這部分將主要總結在two/one stage經典網路上改進的系列論文,包括Faster R-CNN、YOLO、SSD等經

基於深度學習的目標檢測演算法綜述(二)(截止20180821)

參考:https://zhuanlan.zhihu.com/p/40020809 基於深度學習的目標檢測演算法綜述分為三部分: 1. Two/One stage演算法改進。這部分將主要總結在two/one stage經典網路上改進的系列論文,包括Faster R-CNN、YOLO、SSD等經

學習筆記之——基於深度學習的目標檢測演算法

        國慶假期閒來無事~又正好打算入門基於深度學習的視覺檢測領域,就利用這個時間來寫一份學習的博文~本博文主要是本人的學習筆記與調研報告(不涉及商業用途),博文的部分來自我團隊的幾位成員的調研報告(由於隱私關係,不公告他們的名字了哈~),同時結合

基於深度學習的目標檢測演算法綜述(一)

前言 目標檢測(Object Detection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測演算法也從基於手工特徵的傳統演算法轉向了基於深度神經網路的檢測技術。從最初2013年提出的R-CNN、OverFeat

基於深度學習的目標檢測演算法綜述(二)

前言 基於深度學習的目標檢測演算法綜述分為三部分: 1. Two/One stage演算法改進。這部分將主要總結在two/one stage經典網路上改進的系列論文,包括Faster R-CNN、YOLO、SSD等經典論文的升級版本。 2. 解決方案。這部分論文對物體檢

SSD目標檢測演算法改進DSSD(反捲積)

轉自: https://blog.csdn.net/u010725283/article/details/79115477 論文:DSSD : Deconvolutional Single Shot Detector DSSD是2017年的CVPR

基於深度學習的目標檢測演算法綜述:常見問題及解決方案

導讀:目標檢測(Object Detection)是計算機視覺領域的基本任務之一,學術界已有將近二十年的研究歷史。近些年隨著深度學習技術的火熱發展,目標檢測演算法也從基於手工特徵的傳統演算法轉向了基於深度神經網路的檢測技術。從最初 2013 年提出的 R-CNN

基於深度學習的目標檢測演算法及其在醫學影像中的應用

(自己寫的,需要轉載請聯絡作者,或者標明出處呀) 摘要:目標檢測是計算機視覺中一個重要問題,在行人跟蹤、車牌識別、無人駕駛等領域都具有重要的研究價值。近年來,隨著深度學習對影象分類準確度的大幅度提高,基於深度學習的目標檢測演算法逐漸成為主流。本文介紹了目前發展迅猛的深度

基於深度學習的目標檢測演算法綜述(三)

轉自:https://zhuanlan.zhihu.com/p/40102001 基於深度學習的目標檢測演算法綜述(一) 基於深度學習的目標檢測演算法綜述(二) 基於深度學習的目標檢測演算法綜述(三) 本文內容原創,作者:美圖雲視覺技術部 檢測團隊,轉載請註明出處  

論文 | 基於CNN的目標檢測演算法

近十年來,多目標檢測的進展主要的是基於SIFT和HOG。但當在觀察PASCAL VOC object detection的比賽結果時發現,比賽結果在2010-2012年之間進展緩慢。隨著CNN(卷積神經網路)在ImageNet(影象識別比賽)上大獲成功,本文作者考慮是否能將CNN在影象識別比賽中的結果應用到目

【計算機視覺】基於Shading Model(對光照變化一定不變性)的運動目標檢測演算法

光照模型(Shading Model)在很多論文中得到了廣泛的應用,如robust and illumination invariant change detection based on linear dependence for surveillance applic

基於深度學習的目標檢測演算法綜述

導言 目標檢測的任務是找出影象中所有感興趣的目標(物體),確定它們的位置和大小,是機器視覺領域的核 心問題之一。由於各類物體有不同的外觀,形狀,姿態,加上成像時光照,遮擋等因素的干擾,目標檢測 一直是機器視覺領域最具有挑戰性的問題。本文將針對目標檢測(Object Detec

基於深度學習的目標檢測演算法概述

摘要 目標檢測是計算機視覺的一個重要分支,其目的是準確判斷影象或視訊中的物體類別並定位。傳統的目標檢測方法包括這三個步驟:區域選擇、提取特徵和分類迴歸,這樣的檢測方法存在很多問題,現已難以滿足檢測對效能和速度的要求。基於深度學習的目標檢測方法摒棄了傳統檢測演算法適應性不高、對背景模型的更新要

基於深度學習的【目標檢測演算法綜述

        目標檢測一直是計算機視覺的基礎問題,在 2010 年左右就開始停滯不前了。自 2013 年一篇論文的發表,目標檢測從原始的傳統手工提取特徵方法變成了基於卷積神經網路的特徵提取,從此一發不可收拾。本文將跟著歷史的潮流,簡要地探討「目標檢測」演算法的兩種思想和這些

YOLO——基於迴歸的目標檢測演算法

YOLO: You Only Look Once:Unified, Real-Time Object Detection     這篇論文的內容並不多,核心思想也比較簡單,下面相當於是對論文的翻譯!     YOLO是一個可以一次性預測多個Box位置和類別的卷積神經網

為什麼SSD目標檢測演算法目標檢測的效果不好

在SSD演算法中,每個feature map的畫素點都會生成prior box,SSD通過prior box進而對feature map進行訓練。 文章中提到,SSD在訓練過程中,prior box與GroundTruth的之間ROI 達到0.5才會放到網路裡面進行訓練。大