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

📄 hsi.cpp

📁 医学图像处理中中的对细胞进行识别的一个系统
💻 CPP
字号:
/**$6
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 *
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 */

#include "stdafx.h"
#include "HSI.h"
#include <math.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define DEGREES_PER_RADIAN	(180.0 / 3.14159265358979)

// define UNDEFINED_HUE -1.000
#define UNDEFINED_HUE	0.000
#define ZERO_SATURATION 0.0

/**
 =======================================================================================================================
 *
 =======================================================================================================================
 */

int RgbToHsi(RGB *RgbPtr, HSI *HsiPtr)
{
	double	R, G, B, Sum, Quotient;
	double	Radians, Angle, MinValue, MaxValue, TempDouble1, TempDouble2;
	R = ((double) RgbPtr->r) / 255.0;
	G = ((double) RgbPtr->g) / 255.0;
	B = ((double) RgbPtr->b) / 255.0;
	Sum = R + G + B;
	HsiPtr->Intensity = Sum / 3.0;
	MinValue = (R < G) ? R : G;
	MinValue = (B < MinValue) ? B : MinValue;
	MaxValue = (R > G) ? R : G;
	MaxValue = (B > MaxValue) ? B : MaxValue;
	if(HsiPtr->Intensity < 0.00001)
		HsiPtr->Saturation = ZERO_SATURATION;
	else
		HsiPtr->Saturation = 1.0 - (3.0 * MinValue) / Sum;
	if(MinValue == MaxValue)
	{
		HsiPtr->Hue = UNDEFINED_HUE;
		HsiPtr->Saturation = ZERO_SATURATION;
		return 0;
	}

	TempDouble1 = (((R - G) + (R - B)) / 2.0);
	TempDouble2 = (R - G) * (R - G) + (R - B) * (G - B);
	Quotient = (TempDouble1 / sqrt(TempDouble2));
	if(Quotient > 0.99999999999999999)
		Radians = 0.0;
	else if(Quotient < -0.99999999999999999)
		Radians = 3.1415926535;
	else
		Radians = acos(TempDouble1 / sqrt(TempDouble2));
	Angle = Radians * DEGREES_PER_RADIAN;
	if(B > G)
		HsiPtr->Hue = 360.0 - Angle;
	else
		HsiPtr->Hue = Angle;
	return 0;
}

⌨️ 快捷键说明

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