开源图像算法(MBAIFA)-基本算子

基本算子

包括:滤波,亮度,通道,色彩转换,Cut,Split,二值化。

下面是简单的二值化列子,其他的类似,不再截图。

第一步:打开软件

第二步:“新建”,“+”,选择第“1”步,双击“读取”算子,选择图片以及彩色模式

第三步:“+”,选择第“2”步,双击“二值化”算子,选择需要的二值化的方式。

第四步:点击“全部”,会显示一张opencv的图片,你可以看到相应的效果。这里选择的是threshold模式的Binary,你可以根据需要选择其他方式。

所有的算法都在AL目录下面,所有的算法都在相应类的函数convert里,列如“二值化”对应的是ALBThreshold,您如果想使用相关的处理,直接复制相应的代码即可。


void CALBThreshold::convert()
{
	if (m_pStepItem == NULL) return;

	try
	{
		CALSIBThreshold* pStepItem = (CALSIBThreshold*)m_pStepItem;

		int nFs = pStepItem->GetItemFs();

		if (nFs == 0)//二值化 threshold函数
		{
			Mat temp;
			cvtColor(m_srcMat, temp, COLOR_BGR2GRAY);

			int nPara1 = pStepItem->GetItemPara(0);

			if (nPara1 == 0)
			{
				threshold(temp, m_dstMat, 170, 255, THRESH_BINARY);
			}
			else if(nPara1 == 1)
			{
				threshold(temp, m_dstMat, 0, 255, THRESH_OTSU);
			}
		}
		else if (nFs == 1)//二值化 条件判断语句
		{
			Mat temp;
			cvtColor(m_srcMat, temp, COLOR_BGR2GRAY);

			int threshval = 170;//设定阈值
			m_dstMat = threshval < 100 ? (temp < 170) : (temp > 170);//????
		}
		else if (nFs == 2)//自适应二值化 adaptiveThreshold
		{
			Mat temp;
			cvtColor(m_srcMat, temp, COLOR_BGR2GRAY);

			int nPara1 = pStepItem->GetItemPara(2);

			if (nPara1 == 0)
			{
				adaptiveThreshold(temp, m_dstMat, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 11, 0);
			}
			else if (nPara1 == 1)
			{
				adaptiveThreshold(temp, m_dstMat, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 11, 0);
			}
		}

		SetDstType(AL_DST_Mat_One);
	}
	catch (...)
	{

	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值