大重九背后的故事 2021-03-05 11:27 采纳率: 66.7%
浏览 58
已采纳

C++,OpenCV矩阵计算

代码中的tem = 255 * (tem - Min) / (Max - Min);

如何理解。

代码如下:

 

ReadLongWMat.create(512, 640, CV_16UC1);
LongW_FANMat.create(512, 640, CV_16UC1);

cv::flip(ReadLongWMat, LongW_FANMat, 0);
unsigned short* pData = (unsigned short*)(LongW_FANMat.data);

short tem = 0, Max = 0, Min = 32767;

for (int i = 0; i < 640; i++)
{
	for (int j = 0; j < 512; j++)
	{
		tem = ((*(pData + (j * 640 + i))));
		if (Max < tem)	Max = tem;
		if (Min > tem)	Min = tem;
	}
}

if (Max - Min <= 0)
{
	Min--; Max++;
}
for (int i = 0; i < 640; i++)
{
	for (int j = 0; j < 512; j++)
	{
		tem = ((*(pData + (j * 640 + i))));
		tem = 255 * (tem - Min) / (Max - Min); //什么原理
		if (tem > 255)	tem = 255;
		else if (tem < 0)	tem = 0;
		ShowLongWMat.data[j * 640 + i] = tem;
	}
}
  • 写回答

1条回答 默认 最新

  • 爱晚乏客游 2021-03-05 14:12
    关注

    应该是将tem的值归一化到0-255之间,变成灰度图

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器