OpenCV(九):LUT查找表

这篇具有很好参考价值的文章主要介绍了OpenCV(九):LUT查找表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LUT(Look-Up Table)查找表是OpenCV中一种常用的图像处理方法,用于对图像进行像素级别的颜色映射或图像增强操作。LUT查找表可以实现快速、高效的颜色转换和像素操作,尤其在处理大量像素的情况下具有优势。以下是关于OpenCV LUT查找表的一些重要知识点:

1.LUT数据结构:在OpenCV中,LUT查找表通常是一个一维数组或矩阵,其大小通常为256个元素(对于8位图像)。每个元素表示一种颜色或灰度级的映射。可以通过修改查找表中的元素来实现颜色的映射或像素操作。

2.查找表映射:将LUT查找表应用于图像时,可以使用OpenCV的cv::LUT函数进行映射。该函数的原型如下:

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

  • src:输入图像,可以是单通道或多通道的。
  • lut:查找表,通常是创建的LUT数据结构。
  • dst:输出图像,与输入图像具有相同的大小和类型。

3.创建四通道的LUT查找表矩阵,使用LUT函数进行映射


    //将bitmap转化为Mat类
    Mat image(info.height, info.width, CV_8UC4, pixels);
    uchar lutFirst[256];
    for(int i=0;i<256;i++){
        if(i<=100)
             lutFirst[i]=0;
        if(i>100&&i<=200)
            lutFirst[i]=100;
        if(i>200)
            lutFirst[i]=255;
    }
    Mat lutOne(1,256,CV_8UC1,lutFirst);
    //LUT查找表第二层
    uchar lutSecond[256];
    for(int i=0;i<256;i++) {
        if (i <= 100)
            lutSecond[i] = 0;
        if (i > 100 && i <= 150)
            lutSecond[i] = 100;
        if (i > 150 && i <= 200)
            lutSecond[i] = 150;
        if (i > 200)
            lutSecond[i] = 255;
    }
    Mat lutTow(1,256,CV_8UC1,lutSecond);
    //LUT查找表第三层
    uchar lutThird[256];
    for(int i=0;i<256;i++) {
        if (i <= 100)
            lutThird[i] = 200;
        if (i > 100 && i <= 200)
            lutThird[i] = 200;
        if (i > 200)
            lutThird[i] = 255;
    }
    Mat lutThree(1,256,CV_8UC1,lutThird);
    //LUT查找表第四层
    uchar lutFour[256];
    for(int i=0;i<256;i++) {
        if (i <= 100)
            lutFour[i] = 200;
        if (i > 100 && i <= 200)
            lutFour[i] = 200;
        if (i > 200)
            lutFour[i] = 255;
    }
    Mat lutfour(1,256,CV_8UC1,lutFour);
    //拥有四通道的LUT查找表矩阵
    vector<Mat> mergeMats;
    mergeMats.push_back(lutOne);
    mergeMats.push_back(lutTow);
    mergeMats.push_back(lutThree);
    mergeMats.push_back(lutfour);
    Mat LutTree;
    merge(mergeMats,LutTree);
    Mat gray,out0,out1,out2;
    cvtColor(image,gray,COLOR_BGR2GRAY);
    LUT(gray,lutOne,out0);
    LUT(image,lutOne,out1);
    LUT(image,LutTree,out2);
    imwrite("/sdcard/DCIM/out0.jpg",out0);
    imwrite("/sdcard/DCIM/out1.jpg",out1);
    imwrite("/sdcard/DCIM/out2.jpg",out2);

OpenCV(九):LUT查找表,Android之OpenCV,opencv,c++,AndroidOpenCV(九):LUT查找表,Android之OpenCV,opencv,c++,AndroidOpenCV(九):LUT查找表,Android之OpenCV,opencv,c++,Android

    out0                                               out1                                                   out2文章来源地址https://www.toymoban.com/news/detail-687382.html

到了这里,关于OpenCV(九):LUT查找表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • verilog 学习笔记(3)输入查找表(LUT)

    今天做了一个关于输入查找表(LUT)的题目,里面关于8-1 MUX的处理方式让我觉得非常的新奇。 题目很简单,大意就是要求设计一个8位的移位寄存器,同时附加随机访问功能。也就是通过输入的ABC三个数字对应的二进制数转换为一个地址(很像存储中的方式),然后访问移位

    2024年02月13日
    浏览(41)
  • LUT 查找表(Look-Up-Table)

            LUT就是查找表,对于4输入的LUT而言,实际上就是4位地址位,一位数据位的存储器,能够存储16位数据,所以我们在FPGA设计中可以用LUT组建分布式的RAM。         如果用传统的逻辑来实现一个4输入的逻辑电路,需要大致三个步骤:1、看真值表找出输入与输出之间

    2024年02月16日
    浏览(36)
  • OpenCV-Python(21):OPenCV查找及绘制轮廓

    1.1 目标 理解什么是轮廓 学习掌握找轮廓、绘制轮廓等 学习使用cv2.findContours()、cv2.drawContours()函数的用法 1.2 什么是轮廓         在OpenCV中,轮廓是 图像中连续的边界线的曲线,具有相同的颜色或者灰度,用于表示物体的形状 。轮廓在图像处理和计算机视觉中非常重要

    2024年01月18日
    浏览(46)
  • FPGA结构:LUT(查找表)和 MUX(多路选择器)介绍

    如果你想学习有关FPGA的专业术语,可以参考这一篇:FPGA专业术语介绍 一句话概括,通过将函数的真值表存放在少量内存单元中来实现组合逻辑电路功能的模块称为LUT。 这里以简单的一个3-LUT(3输入查找表)为例,以下给出其示意图的简化描述: 输入1 ----┐ 输入2 ----┼---

    2024年02月04日
    浏览(52)
  • OPENCV实现图像查找

    2024年02月09日
    浏览(32)
  • OpenCV颜色查找表

    2024年02月09日
    浏览(33)
  • FPGA原理与结构(2)——查找表LUT(Look_Up_Table)

    系列文章目录:FPGA原理与结构(0)——目录与传送门 目录 一、查找表(LUT)概述 二、LUT的性能权衡 1、面积效率 2、速度问题 3、权衡结果  三、LUT的组成与应用 1、LUT的组成         2、LUT的应用 3、LUT应用拓展  本文参考xilinx官方手册ug474:ug474         LUT是CLB的重要组成

    2024年02月08日
    浏览(38)
  • OpenCV(图像处理)-基于Python-轮廓查找

    一个图像中具有相同颜色或强度(灰度图)的连续点所组成的集合,就是轮廓。轮廓可用于图形分析、物体的识别与检测等等。 在图像中,为了防止轮廓边缘强弱不明显,需要先对图像进行二值化或Canny操作(一般改为黑底白字), 画轮廓时会修改输入的图像。 查找图形的

    2024年02月09日
    浏览(60)
  • OpenCV查找和绘制轮廓:findContours和drawContours

    1  任务描述: 绘制图中粗线矩形的2个边界,并找到其边界的中心线 图1 原始图像  2.函数原型 findContours( InputOutputArray image, OutputArrayOfArrays contours,                               OutputArray hierarchy, int mode,                               int method, Point offset=Point()); image:图

    2024年02月07日
    浏览(44)
  • [C++] opencv - HoughCircles(霍夫圆查找)函数介绍和使用场景

    HoughCircles函数用于在灰度图像中使用霍夫变换查找圆。 该函数通过修改霍夫变换来实现,通常可以很好地检测出圆的中心,但可能无法找到正确的半径。可以通过指定半径范围(minRadius和maxRadius)来协助该函数,或者在#HOUGH_GRADIENT方法中将maxRadius设置为负数以仅返回圆心而不进

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包