任意区域的色彩一致性处理方法

news2024/10/5 22:24:26

影像任意感兴趣区域的色彩一致性处理方法,主要是针对掩膜后的影像,类似下图,对非背景区域的像素进行处理 其中非黑色部分我们叫待匀色区域。
 

image.png


这种处理 对于wallis 和直方图匹配 很容易实现,但是颜色转移就相对而言 困难点。

颜色转移技术介绍

 颜色转移的目的在于使得参考影像和待处理影像的RGB三维数据点簇形状和位置相匹配。

 

 注意: 矩阵级联的时候 实际的效果是从右到左出现的。

任意区域的颜色转移

像素值为255的区域代表前景区域,即为待匀色区域;
步骤①将掩膜后的原始图像转为矩阵rgbs,选定的参考图像转为矩阵rgbt;
rgbs矩阵转换的规则:
创建一个3行M列的矩阵rgbs,其中M是原始图像的总像素个数,矩阵中初始元素值为0。矩阵行数为3,代表掩膜后原始图像的RGB三分量。
矩阵第一行代表R分量 行列数记为a行b列 把R分量的像素值 从第一列的a个像素先填充进rgbs的第一行,然后第二列从上到下继续填充 直到把所有像素填到rgbs的第一行中 G分量和B分量也按照这个规则填充到第二行和第三行中 。rgbt的转换也是一样

这一步我们要将待匀色区域的像素值 存储到矩阵中 也就是说 我们把这个矩阵拿出来 变成三维数据点簇以后进行旋转平移缩放操作 把它变成和ref一样的三维点簇 变好之后 把这个矩阵再按照顺序填充回原单位
就是说 原来待匀色区域的每个像素 我们经过挑选把它选出来 变为整体然后调整它的值之后 再把它放回原来的单位。 很像一个场景 从很多人里面选择一部分人出来 然后训练他们,他们的能力值改变以后,把每个人遣送回原单位,ok。 所以主要就是三个过程:怎么选出来 怎么训练 怎么放回去 所以就按照这三个步骤写下面的文章

怎么选:上面已经把要处理的图像(前景+背景)和ref图像转为 矩阵了 (之所以这么转矩阵 是迎合matlab里api的矩阵转换规则)
步骤②:将要处理的图像中待匀色区域像素值存储到矩阵中
统计二值图中前景区域像素个数,记为n 创建一个3行n列的矩阵 rgbs1 同样rgbs1的三行对应 RGB三个分量中待匀色区域的像素 填充规则依然是第一列 从上到下 第二列从上到下,一直到最后一列 只不过这次只要前景区域的像素(就是说 当遍历到像素是背景像素时 不存到矩阵中)

好了 现在我们已经把它拿出来了 我们要把操作矩阵 rgbs1 了
这一步是 怎么训练
步骤③ 操作:
把待匀色区域形成的矩阵 rgbs1 和rgbt 按照上述(1)进行 缩放旋转平移
然后就得到结果矩阵I

怎么放回去
步骤④ 我们得到矩阵I以后 把I的三行对应RGB三个分量进行填充
比如 I的第一行 填到R分量中 第一行第一个元素填到R分量第一列的第一个非背景像素上,然后第一列填充完以后,继续从第二列的第一个非背景像素开始填充 一直到最后一列
I的第二行和第三行都是如此

so 很简单的就把 任意前景区域图像进行色彩处理了
主要思想就是拿出来 再放回去

看下颜色转移的效果:
把左边的匀成右边的

把亮的匀成暗的


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1015681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaScript保姆级教程】输出函数和初识变量

文章目录 前言一、输出内容1.1 document.write()函数1.2 console.log()函数查看终端输出信息 1.3 alert()函数 二、变量的使用1.1 变量的声明1.3变量的赋值1.4 变量的声明和赋值 三、输入提示框的使用总结 前言 JavaScript是一种强大的脚本语言,广泛应用于网页开发…

Linux中swap几乎耗尽,但物理内存还有空余的现象

故障现象: 产生此现象的原因: swappiness 配额设置了偏高的值。 还有一个潜在的因素是某个程序因其自身对内存管理的缺陷,形成了zombie进程、且为及时关闭的处理任务还在持续消耗Mem及swap。 解决办法: 调低swappiness 配额值&…

数据库连接工具Chat2DB介绍

1、Chat2DB介绍 Chat2DB 是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语言转换为SQL&a…

阿里云 服务器配置端口号阿里云网页开放的一个新端口后,重启防火墙,端口未启动

问题: 阿里云网页开放的一个新端口后,重启防火墙,端口未启动,之前配置的也都停止了。 解决: 原因可能是阿里的服务控制了,只能一个个端口开启了。把新配置新端口也单独启用。 开启80端口指令 firewall-cm…

【AIGC】Stable Diffusion Prompt 每日一练0916

一、前言 1.1 写在前面 本文是一个系列,有点类似随笔,每天一次更新,重点就Stable Diffusion Prompt进行专项训练,本文是第022篇《Stable Diffusion Prompt 每日一练0916》。上一篇《Stable Diffusion Prompt 每日一练0915》 1.…

查询linux系统中的cup和内存占用率?如何能够降低程序的cpu或者内存的占用率?

查询linux系统中的cup和内存占用率?如果查到具体是哪一个进程的cup占用率比较多,你会怎么做?如何能够降低程序的cpu或者内存的占用率? 要查询Linux系统中的CPU和内存占用率,您可以使用top命令,它可以显示系统的总体运行状态和每…

怒刷LeetCode的第1天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:暴力枚举 方法二:哈希表 第二题 题目来源 题目内容 解决方法 方法一:动态规划 第三题 题目来源 题目内容 解决方法 方法一:模拟 第一题 题目来源 两数之和 - 力…

【python爬虫—星巴克产品】

文章目录 需求爬取星巴克产品以及图片,星巴克菜单 python爬虫爬取结果 需求 爬取星巴克产品以及图片,星巴克菜单 网页分析: 首先,需要分析星巴克官方网站的结构,了解菜单栏的位置、布局以及菜单项的标签或类名等信息…

开源AI家庭自动化助手-手机控制家庭智能家居服务

产品简介 将本地控制和隐私放在首位的开源家庭自动化。由全球开发者和 DIY 爱好者社区提供支持。非常适合在 Raspberry Pi 或本地服务器上运行。 功能介绍 1. 控制面板在控制面板,你可以查看家庭的灯光,温度,门铃,音响&#xf…

激光切割机加工过程中产生毛刺的原因及解决方案

激光切割设备在进行工件加工时产生了大量的工件毛刺。很多人认为是设备质量问题,然而事实并非如此。 毛刺是指在金属制品加工过程中遗留在金属表面的超量残渣颗粒。加工的工件出现毛刺,那么即被认为是次品。 当使用激光切割设备加工工件时,如…

第一类曲面积分:曲面微元dσ与其投影面积微元dxdy之间的关系推导

第一类曲面积分:曲面微元dσ与其投影面积微元dxdy之间的关系推导 本篇博客精简自本人关于曲面积分的博客:详情见:曲面积分(Surface Integral) 曲面参数化(曲面上的每个点都使用起点为原点、终点为该曲面上的点的向量表示&#x…

介绍Spring Security框架,以及如何使用它实现应用程序的安全性

文章目录 什么是 Spring Security?Spring Security 的工作原理如何使用 Spring Security 构建安全的应用程序步骤 1:添加 Spring Security 依赖步骤 2:配置 Spring Security步骤 3:配置安全性规则步骤 4:创建用户和角色…

解决mybatis-plus不能俩表联查分页之手动写分页

public class MyPageHelper {// 调用pageInfo插件内的方法 开启分页 需要传入一个起始页的值和每页显示的条数public static void startPage(PageRequest pageRequest) {PageHelper.startPage(pageRequest.getPageNum(),pageRequest.getPageSize());}// 封装结果集public stati…

从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动

从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动 文章目录 从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动一、前言1、大纲 二、VR射线移动功能实现与解析1、区域传送(1)新建 XR Orig…

linux下使用crontab定时器,并且设置定时不执行的情况,附:项目启动遇到的一些问题和命令

打开终端,以root用户身份登录。 运行以下命令打开cron任务编辑器: crontab -e 如果首次编辑cron任务,会提示选择编辑器。选择你熟悉的编辑器,比如nano或vi,并打开相应的配置文件。 在编辑器中,添加一行类…

SpringMVC工程之非web部分代码复用,并独立运行

文章目录 概述一、独立运行前提二、实现步骤1. WebApplicationContext上下文配置文件定义2.servletContext上下文配置文件3. 定义独立运行的类main方法4. 开发环境运行main结果5. class文件运行6. jar运行(推荐) 概述 springMVC是位于spring web端的一个…

BeanFactory和ApplicationContext功能

IDEA中双击shift,搜索一切 使用ctrl f12打开当前文件的结构图,显示了当前文件的层次结构,包括类、方法、变量等。 BeanFactory接口功能 表面上只有getBean实际上IOC、DI、以及Bean的生命周期的各种功能,都有其实现类&#xff08…

视频讲解|1033含sop的配电网重构(含风光可多时段拓展)

目录 1 主要内容 程序特点 讲解重点 2 视频链接 1 主要内容 该视频为含sop的配电网重构matlab代码讲解,对应资源下载链接为含sop的配电网重构(含风光|可多时段拓展),程序主要内容是:针对含sop的配电网重构模型&…

【AI】推理引擎的模型转换模块

在推理引擎架构中,API 接口下来就是模型转换,狭义的模型转换是指将各种框架的模型转换为统一的格式,即模型格式转换;广义的模型转换则还包括图优化部分,因为不同的框架提供的算子不同,且类型太多&#xff0…

强大的 HTTP 请求工具:axios 打造前后端通信利器 | 开源日报 0916

axios/axios Stars: 101.2k License: MIT axios 是一个基于 Promise 的 HTTP 客户端,适用于浏览器和 node.js。 它具有以下核心优势: 支持在浏览器中进行 XMLHttpRequest在 node.js 中发起 http 请求支持 Promise API拦截请求和响应,并对数…