对数指数变换

源范围【minX,maxX】到目标范围【minY,maxY】的指数变换;

double AbstractCalculator::expConvert(double x, double base, double minX, double maxX, double minY, double maxY)

{
    double factor = (maxY - minY) / (log(maxX + base) - log(minX + base));
    return (exp((x + factor * log(minX + base) - minY) / factor) - base);
}


源范围【minX,maxX】到目标范围【minY,maxY】的对数变换;变换效果为:两端向中间靠近;

double AbstractCalculator::logConvert(double x, double base, double minX, double maxX, double minY, double maxY)
{
    double factor = (maxY - minY) / (log(maxX + base) - log(minX + base));
    return (factor * (log(x + base) - log(minX + base)) + minY);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
地进行查找、插入、删除等操作。哈希函数是将关键字映射到哈希表中的位置灰度图像的对数指数变换是一种常用的图像增强方法,可以通过以下代码实现: ```c++ // 对数指数变换函数 void Logarithmic_Exponential_Transform(CImage* pImage, double a的函数,常用的哈希函数有除留余数法、平方取中法、折叠法等。处理冲突的方法有开放地址法、链地址法、再哈希法等。 给定关键字序列(25,, double b, double c) { // 获取图像信息 int nWidth = pImage->GetWidth(); int nHeight = pImage->GetHeight(); int nPitch = pImage->GetPitch(); BYTE* pBits = (BYTE*)pImage18,3,21,65,98,31,19,22,12,0,29,101),采用除留余->GetBits(); // 逐像素进行变换 for (int y = 0; y < nHeight; y数法作为哈希函数、链地址法作为处理冲突的方法绘制哈希表: ``` 哈希表++) { BYTE* pRow = pBits + y * nPitch; for (int x = 0; x < n大小为13,将关键字除以13取余数作为哈希地址。用链表表示哈希表中的Width; x++) { BYTE gray = pRow[x]; double f = a * log(1 + b * gray) +每个位置。 0 -> 0 -> null 1 -> null 2 -> null 3 -> 3 -> null 4 -> null c; if (f < 0) f = 0; if (f > 255) f = 255; 5 -> null 6 -> 18 -> null 7 -> null 8 -> 98 -> null 9 -> 19 -> pRow[x] = (BYTE)f; } } } ``` 其中,a、b、c 是变换参数,可以29 -> 99 -> null 10 -> 21 -> 31 -> null 11 -> 22 -> null 12 -> 12 ->根据实际需进行调整。调用该函数时,可以将 CImage 对象作为参数传入,表示对该图像进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值