顶帽变换(Top_hat)算法(学习笔记)

1.绪论

红外图像中的弱小目标的目标属性包涵“弱"和“小’’两个方面:“弱’’是指目标在红外波长上所表现出来的强度,具体反映到所拍摄的红外图像上,就是指目标的灰度值;而“’’是指目标的尺寸大小,也就是前面所述的成像面积很小,反映到红外图像上就是指目标所占的像素数目很少

SPIE国际光学工程学会(Societyof Photo一0ptical Instrumentation Engineers,简记为SPIE)从1989年开始,几乎每年都会举办有关弱小目标检测技术的国际会议,研讨弱小目标检测技术的最新研究成果。根据SPIE的定义,成像尺寸小于整个成像区域0.12%的目标均可称为弱小目标(即当成像尺寸为256×256时,弱小目标应不超过81个像素,其目标尺寸在9*9以内)。

2. 顶帽变换(Top_hat)算法

顶帽变换是一种图像形态学处理方法,可用于校正不均匀光照的影响。图像形态学处理的基本操作是膨胀与腐蚀,再衍生出开运算和闭运算,图像相减与开操作和闭操作相结合,会产生Top-hat(顶帽)变换和bottom-hat(底帽)变换。灰度级图像的顶帽变换定义为灰度图像减去其开运算

开运算带来的结果是放大裂缝或者局部低亮度的区域,因此,从原图中减去开运算后的图,得到的效果图突出了比原图轮廓周围的区域更明亮的区域,且这一操作和选择的核的大小相关。

应用:顶帽运算往往用来分离比邻近点亮一些的斑块。当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取。

#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/imgproc/imgproc.hpp> 
#include <iostream> 

using namespace std;
using namespace cv;
int main()
{
	Mat srcImage, dstImage,TopImage; //源图像,输出图像
	//---------【1】读取源图像并检查图像是否读取成功--------- 
	srcImage = imread("./src\\69.bmp", 0);
	if (!srcImage.data)
	{
		cout << "读取图片错误,请重新输入正确路径!\n";
		system("pause");
		return-1;
	}
	imshow("【源图像】", srcImage);
	//---------【2】获取自定义核---------
	Mat element = getStructuringElement(MORPH_RECT, Size(3, 3));
	//---------【3】进行开运算操作---------
	morphologyEx(srcImage, dstImage, MORPH_OPEN, element);
	//---------【4】显示效果图---------
	imshow("【效果图--开运算操作】", dstImage);

	//---------【5】TopHAT变换,并显示效果图---------
	TopImage = srcImage - dstImage;
	imshow("【效果图--TopHat操作】", TopImage);


	waitKey(0);
	return 0;
}

4. 小结

顶帽变换作为一种非线性滤波的处理方法,在相对简单的背景中处理效果确实不错,但在复杂多变的背景中,想要保持较好的背景抑制效果,还是需要做更多更精细化的处理,比如设计一种自适应场景的顶帽变换方法,或许是一个不错的优化方向,本次将其应用在复杂背景下弱小目标的背景抑制中,后续看能否经过优化设计,得到更好的背景抑制效果,后续再进行详细介绍。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值