densitytable.h
来自「3D reconstruction, medical image process」· C头文件 代码 · 共 63 行
H
63 行
#ifndef _DENSITYTABLE_H_#define _DENSITYTABLE_H_#include <xmmintrin.h>#include "SummedAreaTable.h"#define DENSITY_RANGE (4096)class RxDensityTable {protected: RxSummedAreaTable m_SAT; float m_afOpacityCorrectionTable[256]; const __m128 *m_pTable; // 寇何俊辑 且寸 __m128 *m_pOpacityCorrectedTable; __m128 *m_pPreIntegratedTable; void MakeOpacityCorrectionTable(float fSpacing); void MakeOpacityCorrectedDensityTable(float fSpacing); void MakePreIntegratedTable();public: RxDensityTable(); ~RxDensityTable(); void operator=(const RxDensityTable& info); void SetSpectrumTable(__m128 *pTable); void InitRendering(float fSpacing); int IsTransparent(unsigned short nMax, unsigned short nMin) {return !m_SAT.LookUp(nMax, nMin);} int IsTransparent(unsigned short nDensity) {return _mm_comieq_ss(m_pOpacityCorrectedTable[nDensity], _mm_setzero_ps());} // Get Color __m128 GetColor(unsigned short nDensity) { return m_pOpacityCorrectedTable[nDensity];} void GetColor(int nDensity, float fColor[4]) {_mm_storeu_ps(fColor, m_pOpacityCorrectedTable[nDensity]);} __m128 GetPreIntegratedColor(int nPrevDensity, int nCurrentDensity) { int nMaxDensity = __max(nPrevDensity, nCurrentDensity); int nMinDensity = __min(nPrevDensity, nCurrentDensity); __m128 vColor = _mm_sub_ps(m_pPreIntegratedTable[nMaxDensity], m_pPreIntegratedTable[nMinDensity]); int nRange = nMaxDensity - nMinDensity + 1; __m128 vRange = _mm_set1_ps((float)nRange); // cvt肺 函券 vRange = _mm_rcp_ps(vRange); return _mm_mul_ps(vColor, vRange); } void GetPreIntegratedColor(int nPrevDensity, int nCurrentDensity, float fColor[4]) { int nMaxDensity = __max(nPrevDensity, nCurrentDensity); int nMinDensity = __min(nPrevDensity, nCurrentDensity); __m128 vColor = _mm_sub_ps(m_pPreIntegratedTable[nMaxDensity], m_pPreIntegratedTable[nMinDensity-1]); int nRange = nMaxDensity - nMinDensity + 1; __m128 vRange = _mm_set1_ps((float)nRange); // cvt肺 函券 vRange = _mm_rcp_ps(vRange); _mm_storeu_ps(fColor, _mm_mul_ps(vColor, vRange)); }};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?