首页 > 其他分享 >简单处理——灰度图像反转和彩色图像反转

简单处理——灰度图像反转和彩色图像反转

时间:2024-04-07 21:24:24浏览次数:23  
标签:彩色图像 反转 rinve RGB 灰度 data assign

简单处理——灰度图像反转和彩色图像反转

​ 在前面的简单示例中,我们简单了解了RGB格式的数据,清楚了RGB888、RGB332、RGB565等等,同时进行了简单的灰度处理,将彩色图转换为灰度图,但是我们在实际计算机视觉的处理过程中,还需要对于图像的亮度信息有一个更直观的判断,同时有时候我们也会有反转图像信息的需求。

一、灰度图像反转和彩色图像反转

​ 首先通过百度我们得知:灰度图像反转就是每个像素的灰度值取反,彩色图像反转就意味着每个通道的像素值取反。

//我们可以得出一些简单的公式:
//8位灰度图:invert = 255 - origin
//RGB888:  invert = (255-R)*2^16 + (255-G)*2^8 + (255-B;

二、MATLAB实现

3.2

MATLAB实现是比较简单的,实现结果如下:

3.1

三、FPGA实现

​ 我们今天尝试实现一个效果:用四个按键操控HDMI显示器显示处理后的图像,分别控制:RGB、RGB彩色反转、Y分量、Y分量彩色反转;从我们上节实验的基础上进行是十分简单的,我们只需要对ISP_TOP模块的代码进行简单修改即可

3.3

​ 在这个部分的基础上用assign语句对invert后的语句赋值即可,时钟方面与invert之前的数据保持对齐即可(插入一个题外思想,实际上图像反转的assign语句应该也是造成了一定的时序延迟的,在时序约束中或许要进行进一步的讨论)

//这里我原本的思想是把RGB565复原之后,用255减去之后再将RGB888转换成RGB565即可
//实际上只需要用RGB565分别对应的阈值进行减操作即可
assign rinve_R = 5‘b11111 - RGB_data[15:11];
assign rinve_G = 6‘b111111 - RGB_data[10:5];
assign rinve_B = 5‘b11111 - RGB_data[4:0];
assign rinve_data = {rinve_R,rinve_G,rinve_B};

assign ginve_data = 8'd255 - Y_data;

四、上板验证

3.8

​ 实验结果符合预期,不过感觉自己这个小显示器的对比度有点低,和MATLAB处理的还是存在一定差距的。

参考资料:咸鱼FPGA

标签:彩色图像,反转,rinve,RGB,灰度,data,assign
From: https://www.cnblogs.com/qier0220/p/18119890

相关文章

  • opencv基础操作:读取图片时使用灰度方式、转换颜色空间、使用opencv展示图片、使用open
    包含的操作有:读取图片时使用灰度方式转换颜色空间使用opencv展示图片使用opencv对BGR通道进行划分并展示,需要注意的是直接使用cv2.split()得到的B,G,R分别是单通道的,因此最终展示出来为灰度图像。    如果想保留彩色图像,可以直接对img切片来实现。使用opencv在一个窗口......
  • 比nestjs更优雅的ts控制反转策略-依赖查找
    一、Cabloy5.0内测预告Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的ts控制反转策略,让我们的业务开发更加快捷顺畅1.新旧技术栈对比:后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts、egg3.0、多数据库兼容(支持mysql......
  • leetcode.206.反转链表
    题目题意:反转一个单链表。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL思路双指针:创建指针p,curr,初始分别指向null和头节点,每轮循环移动一个节点的指向,直到指到最后一个位置为止。递归法:基于双指针。注意递归的退出条件实现双指针classSolution{......
  • DUT-图像简易灰度
    模板-V1模型功能输入视频总线输出视频总线将RGB24数据转化为灰度数据模型框图控制模型实现步骤源码编写未经仿真的原始代码`timescale1ns/1ps/**/////////////////////////////////////////////////////////////////////////////////////Company://Eng......
  • Java | Leetcode Java题解之第7题整数反转
    题目:题解:classSolution{publicintreverse(intx){intrev=0;while(x!=0){if(rev<Integer.MIN_VALUE/10||rev>Integer.MAX_VALUE/10){return0;}intdigit=x......
  • 基于Sermant的全链路灰度发布在汽车行业DMS系统的应用
    本文分享自华为云社区《基于Sermant的全链路灰度发布在汽车行业DMS系统的应用》,作者:聂子雄华为云高级软件工程师摘要随着汽车产业的智能升级,DMS系统作为汽车行业的经销管理系统也面临着更加多种多样的业务场景的挑战。借助Sermant,华为云能够为DMS系统提供一整套端到端全链路灰......
  • 力扣热门算法题 322. 零钱兑换,344. 反转字符串,347. 前 K 个高频元素
    322.零钱兑换,344.反转字符串,347.前K个高频元素,每题做详细思路梳理,配套Python&Java双语代码,2024.04.02 可通过leetcode所有测试用例。目录322.零钱兑换解题思路完整代码PythonJava​编辑344.反转字符串解题思路完整代码PythonJava​编辑347.前K个高频......
  • python - 图片灰度化、二值化
    1.灰度化fromPILimportImageimg=Image.open("test.jpg")img=img.convert("L")img.save("output.jpg")2.二值化fromPILimportImageimg=Image.open("test.jpg")img=img.convert("1")img.save("out......
  • 【图像加密】基于RSA实现灰色、彩色图像加密解密(含秘钥)附Matlab代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 【Python】反转数字(整数、百分数、小数、分数)
    (本人蒟蒻,dalao勿喷)需要代码往下翻,最后的代码最简洁喔~题设:'''给定一个数,请将该数各个位上数字反转得到一个新数。整数反转是将所有数位对调。小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分。分数反转是把分母的数反转,再把分子的数反转,不交换......