形态学处理——图像处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guanyuqiu/article/details/53008802

1.腐蚀

我所采用的腐蚀是8邻域内的,对运动目标人有一定的保护作用,尽量减少对有效运动目标的腐蚀。
void	InfoErode(unsigned char* pImgData, unsigned char* pDstData)
{
	int				i,j,nSum,nMean,nColum,nInter;
	unsigned char	*pDst1,*pDst2,*pDst3,*pDst4,*pDst5,*pDst6,*pDst7,*pDst8,*pDst9,*pDstResult,k;
	pDstResult = pDstData;
	memset(pDstData, 0 ,sizeof(unsigned char) * m_nMulti);
	Dst1 = pImgData;
	pDst2 = pDst1 + 1;
	pDst3 = pDst2 + 1;
	pDst4 = pDst1 + m_nWidth;
	pDst5 = pDst4 + 2;
	pDst6 = pDst4 + m_nWidth;
	pDst7 = pDst6 + 1;
	pDst8 = pDst7 + 1;
	pDst9 = pDst4 + 1;
	pDstResult = pDstData + m_nWidth + 1;
	for (i=1;i<m_nHeight-1; i++)
	{
	        for (j=1; j<m_nWidth-1; j++)
		{
			nSum = 0;
			nSum += *pDst1;
			nSum += *pDst2;
			nSum += *pDst3;
			nSum += *pDst4;
			nSum += *pDst5;
			nSum += *pDst6;
			nSum += *pDst7;
			nSum += *pDst8;

			nColum = (*pDst2) & (*pDst9) & (*pDst7);

			nMean = nSum>>3;
			nInter = nMean>170?255:0;

			*pDstResult = nColum | nInter;
			pDst1++;
			pDst2++;
			pDst3++;
			pDst4++;
			pDst5++;
			pDst6++;
			pDst7++;
			pDst8++;
			pDst9++;
			pDstResult++;

		}
		pDst1 += 2;
		pDst2 += 2;
		pDst3 += 2;
		pDst4 += 2;
		pDst5 += 2;
		pDst6 += 2;
		pDst7 += 2;
		pDst8 += 2;
		pDst9 += 2;
		pDstResult += 2;
	}
}
 
  

2.膨胀

膨胀采用的是8邻域。
void InfoDilate(unsigned char* pImgData, unsigned char* pDstData)
{
	int            i,j;
	unsigned char  *pDst1,*pDst2,*pDst3,*pDst4,*pDst5,*pDst6,*pDst7,*pDst8,*pDst9,*pDstResult,k;

	memset(pDstData, 0 ,sizeof(unsigned char) * m_nMulti);

	
	pDst1 = pImgData+;
	pDst2 = pDst1 + 1;
	pDst3 = pDst2 + 1;
	pDst4 = pDst1 + m_nWidth;
	pDst5 = pDst4 + 1;
	pDst6 = pDst4 + 2;
	pDst7 = pDst4 + m_nWidth;
	pDst8 = pDst7 + 1;
	pDst9 = pDst8 + 1;
	pDstResult = pDstData + m_nWidth + 1;
	for (i=1;i<m_nHeight-1; i++)
	{
		for (j=1; j<m_nWidth-1; j++)
		{
			*pDstResult = (*pDst1) | (*pDst2) | (*pDst3) | (*pDst4) | (*pDst5) | (*pDst6) | (*pDst7) | (*pDst8) | (*pDst9);
			pDst1++;
			pDst2++;
			pDst3++;
			pDst4++;
			pDst5++;
			pDst6++;
			pDst7++;
			pDst8++;
			pDst9++;
			pDstResult++;

		}
		pDst1 += 2;
		pDst2 += 2;
		pDst3 += 2;
		pDst4 += 2;
		pDst5 += 2;
		pDst6 += 2;
		pDst7 += 2;
		pDst8 += 2;
		pDst9 += 2;
		pDstResult += 2;
		
}


猜你喜欢

转载自blog.csdn.net/guanyuqiu/article/details/53008802