利用OpenCV的函数LUT()对矩阵的数据进行查表映射
创始人
2024-03-14 03:28:02
0

利用OpenCV的函数LUT()对矩阵的数据进行查表映射

LUT是Look Up Table 的缩写,意为查表映射。

OpenCV的函数LUT()能实现图像灰度值或者说矩阵元素值的查表映射功能。

函数LUT()的C++原型如下:

void cv::LUT(InputArray src,InputArray lut,OutputArray dst)

函数LUT()的Python原型如下:

dst=cv.LUT(src, lut[, dst])

第一个参数src仅支持8位的数据,但可以是多通道的图像。

第二个参数lut是一个1×256的矩阵,其中存放着每个灰度值经过映射后的数值,可以是单通道的图像或者与第一个参数具有相同的通道数。
如果第二个参数是单通道图像,则src中的每个通道都按照一个LUT进行映射;
如果第二个参数是多通道图像,则src中的第i个通道按照第二个参数的第i个通道的LUT进行映射。

函数LUT()输出图像或矩阵的数据类型与第二个参数lut的数据类型一致。

进行映射操作的时候,原图像或矩阵中的元素值作为lut的索引值,索引对应元素的值作为映射后的新值。

这个函数的使用非常简单,大家看了上面的叙述再结合下面的例子,就能掌握它的使用了。

C++示例代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术//OpenCV版本 OpenCV3.0#include 
#include using namespace std;
using namespace cv;int main()
{cv::Mat A1 = (cv::Mat_(3, 3) << 41, 41, 41,111, 111, 111,240, 240, 240);cout << "A1中的数据为:\n" << A1 << endl << endl;Mat LUT_1 = Mat::zeros(1, 256, CV_8UC1);LUT_1.colRange(0, 100) = 50;LUT_1.colRange(100, 200) = 70;LUT_1.colRange(200, 256) = 80;// cout << "LUT_1中的数据为:\n" << LUT_1 << endl << endl;cv::Mat B1;LUT(A1, LUT_1, B1);cout << "A1中的数据经查表映射后为:\n" << B1 << endl << endl;return(0);
}

运行结果如下:
在这里插入图片描述
Python示例代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术
# OpenCV的版本为4.4.0import numpy as np
import cv2 as cvif __name__ == '__main__':A1 = np.array([[40, 40, 40],[110, 110, 110],[240, 240, 240]], dtype='uint8')LUT_1 = np.zeros(256, dtype='uint8')LUT_1[0: 100] = 50LUT_1[100: 200] = 70LUT_1[200:] = 80B1 = cv.LUT(A1, LUT_1)

运行结果如下:
在这里插入图片描述

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...