⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jjbinaryvolume.cpp

📁 3D reconstruction, medical image processing from colons, using intel image processing for based clas
💻 CPP
字号:
#include "stdafx.h"#include "JJBinaryVolume.h"JJBinaryVolume::JJBinaryVolume(){	m_pbyVolume = NULL;}JJBinaryVolume::~JJBinaryVolume(){	DestroyVolume();}BOOL JJBinaryVolume::CreateVolume(int iX, int iY, int iZ){	DestroyVolume();	ASSERT(m_pbyVolume == NULL);	ASSERT(iX > 0 && iY > 0 && iZ > 0);	m_iSizeX = iX; //9	m_iSizeY = iY; //9	m_iSizeZ = iZ; //9	m_iBitVolSizeX = iX / 8 + (((iX % 8) > 0) ? 1: 0); // 1 + 1 = 2	m_iBitVolSizeY = iY; // 9	m_iBitVolSizeZ = iZ; // 9	m_iSizeOfBitVolume = m_iBitVolSizeX*m_iBitVolSizeY*m_iBitVolSizeZ;	m_pbyVolume = (unsigned char*)malloc(m_iSizeOfBitVolume);		if(m_pbyVolume == NULL) {		m_iSizeOfBitVolume = 0;		return FALSE;	}		Clear();	return TRUE;}BOOL JJBinaryVolume::DestroyVolume(){	if(m_pbyVolume){		free(m_pbyVolume);		m_pbyVolume = NULL;	}	return TRUE;}BOOL JJBinaryVolume::Clear(){	ASSERT(m_pbyVolume != NULL);	memset(m_pbyVolume, 0x00, sizeof(unsigned char)*m_iSizeOfBitVolume);	return TRUE;}void JJBinaryVolume::SetEdge(int iX, int iY, int iZ){	switch (iX % 8)	{	case 0:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x01;		break;	case 1:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x02;		break;	case 2:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x04;		break;	case 3:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x08;		break;	case 4:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x10;		break;	case 5:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x20;		break;	case 6:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x40;		break;	case 7:		m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] |= 0x80;		break;	}}BOOL JJBinaryVolume::IsEdge(int iX, int iY, int iZ){	switch (iX % 8)	{	case 0:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x01)			return TRUE;		else			return FALSE;		break;	case 1:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x02)			return TRUE;		else			return FALSE;		break;	case 2:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x04)			return TRUE;		else			return FALSE;		break;	case 3:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x08)			return TRUE;		else			return FALSE;		break;	case 4:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x10)			return TRUE;		else			return FALSE;		break;	case 5:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x20)			return TRUE;		else			return FALSE;		break;	case 6:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x40)			return TRUE;		else			return FALSE;		break;	case 7:		if (m_pbyVolume[iX/8 + iY*m_iBitVolSizeX + iZ*m_iBitVolSizeX*m_iBitVolSizeY] & 0x80)			return TRUE;		else			return FALSE;		break;	}	return FALSE;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -