41.利用matlab 平衡方程用于图像(matlab程序)

1.简述

      

白平衡
白平衡的英文为White Balance,其基本概念是“不管在任何光源下,都能将白色物体还原为白色”,对在特定光源下拍摄时出现的偏色现象,通过加强对应的补色来进行补偿。

所谓的白平衡是通过对白色被摄物的颜色还原(产生纯白的色彩效果),进而达到其他物体色彩准确还原的一种数字图像色彩处理的计算方法。(源自百度百科)

灰度世界算法
灰度世界理论:认为任何一幅图像, 当有足够的色彩变化时, 其R, G, B分量均值会趋于平衡(即 RGB三个数值相等, 也就是说应当是黑白灰类型的颜色)。这个理论在全局白平衡中得到⼴泛应用, 特点是能够利用更多的图像信息来做判断, 但在面对⾊色彩较为单一的图像时就显得有些乏力了。

灰度世界算法:根据灰度世界理论,将原始图的RGB均值分别调整到R= G = B即可。不完美的地方就是这个算法对颜色不丰富的图像敏感程度一般,处理起来效果也就不会很理想,局限性很大。
 

2.代码

%%  学习目标:平衡方程用于图像
function anisodiffusionsimple()
a = imread('trui.tif');
a = im2double(a);
g1 =a;
g2 =a;
stepsize1=.2;
stepsize2=.1;
nosteps=200;
verbose=1;
if verbose
    figure(verbose);
    subplot(2,3,1); imshow(g1); title('Original Image'); drawnow;
end
h=waitbar(0,'Now is doing Diffusion');
for i=1:nosteps
    laplaceg1=snldStep1(g1);
    g1 = g1 +stepsize1 * laplaceg1;
    laplaceg2=snldStep2(g2);
    g2 = g2 +stepsize2 * laplaceg2;
    waitbar(i/nosteps,h);
    if verbose
        figure(verbose);
        subplot(2,3,2); imshow(uint8(255*(laplaceg1-min(laplaceg1(:)))/(max(laplaceg1(:))-min(laplaceg1(:)))));
        %subplot(2,2,2); imshow(uint8(255*(laplaceg-min(laplaceg(:)))/(max(laplaceg(:))-min(laplaceg(:)))));%归一化?
        title('Laplace term')
        subplot(2,3,3); imshow(g1);
        title('Anisotropic Diffusion'); drawnow;
        subplot(2,3,5); imshow(uint8(255*(laplaceg2-min(laplaceg2(:)))/(max(laplaceg2(:))-min(laplaceg2(:)))));
        %subplot(2,2,2); imshow(uint8(255*(laplaceg-min(laplaceg(:)))/(max(laplaceg(:))-min(laplaceg(:)))));%归一化?
        title('Laplace term')
        subplot(2,3,6); imshow(g2);
        title('Isotropic Diffusion'); drawnow;
    end
        waitbar(i/nosteps,h);
end
close(h);

function r = snldStep1( L )
% Discrete numerical scheme of dL/dt for scalar diffusion
N = size(L, 1);
M = size(L, 2);
lamda=.008;
% Set delta_x,delta_y=2,so we can set delta_x/2=delta_y/2=1
Lpc = translateImage( L, 1, 0 );
Lmc = translateImage( L, -1, 0 );
Lcp = translateImage( L, 0, 1 );
Lcm = translateImage( L, 0, -1 );
Lppc = translateImage( L, 2, 0 );
Lmmc = translateImage( L, -2, 0 );
Lcpp = translateImage( L, 0, 2 );
Lcmm = translateImage( L, 0, -2 );
Lap_i = (Lpc+Lcp)-2*L; % Laplace_I
d =abs( Lap_i/lamda );
e=-d.*d;
C = exp(e);
Cpc = translateImage( C, 1, 0 );
Cmc = translateImage( C, -1, 0 );
Ccp = translateImage( C, 0, 1 );
Ccm = translateImage( C, 0, -1);
r = ( 1/4*(Cpc.*( Lppc - L )-Cmc.*( L - Lmmc ))+1/4*(Ccp.*( Lcpp - L )-Ccm.*( L - Lcmm )) );

function k = snldStep2( L )
% Discrete numerical scheme of dL/dt for scalar diffusion
N = size(L, 1);
M = size(L, 2);
Lpc = translateImage( L, 1, 0 );
Lmc = translateImage( L, -1, 0 );
Lcp = translateImage( L, 0, 1 );
Lcm = translateImage( L, 0, -1 );
k = ( (Lpc-2*L+Lmc)+ (Lcp-2*L+Lcm) );
 

3.运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习——SMO算法推导与实践

一、 硬间隔-SMO算法推导 明天再说,啊。。。。感觉天空明朗了很多,即使现在已经很晚了 还是要打开柯南,看看电视,等待天气预报所说的台风天吧! 一时之间,忽然失去了用markdown语法写下推导过程的勇气。。。…

使用Dockerfile构建镜像

使用Dockerfile构建镜像 使用Dockerfile构建镜像 创建一个空目录 docker mkdir docker进入此目录 cd docker创建并编辑DockerFile文件 vi touch DockerfileDockerfile文件的内容如下: from node label maintainer xxxqq.com RUN git clone -q https://github…

fishing之第二篇Gophish钓鱼平台搭建

文章目录 一、Gophish介绍二、Gophish部署三、Gophish配置0x01 功能介绍0x02 Sending Profiles(钓鱼邮箱发送配置)0x03 Email Templates(钓鱼邮件模板)0x04 Landing Pages(伪造钓鱼页面)0x05 Users & Groups(用户和组)0x06 Campaigns(钓鱼测试)0x07 Dashboard(仪…

Stable Diffusion - Stable Diffusion WebUI 支持 SDXL 1.0 模型的环境配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132056980 SDXL 1.0 版本 是 Stable Diffusion 的最新版本,是基于潜在扩散模型的文本到图像生成技术,能够根据输入的任何文…

【VUE】前端实现防篡改的水印

效果 水印的作用 图片加水印的操作一般是由后端来完成,有些站点保护的知识产权的类型可能比较多,不仅仅是图片,可能还有视频、文字等等,对于不同类型的对象添加水印后端操作比较复杂,所有有些站点逐步的让前端去进行水…

Redhat Linux 安装MySQL安装手册

Redhat安装MySQL安装手册 1 下载2 上传服务器、解压并安装3 安装安装过程1:MySQL-shared-5.6.51-1.el7.x86_64.rpm安装过程2:MySQL-shared-compat-5.6.51-1.el7.x86_64.rpm安装过程3:MySQL-server-5.6.51-1.el7.x86_64.rpm安装过程4&#xff…

奥威BI—数字化转型首选,以数据驱动企业发展

奥威BI系统BI方案可以迅速构建企业级大数据分析平台,可以将大量数据转化为直观、易于理解的图表和图形,推动和促进数字化转型的进程,帮助企业更好地了解自身的运营状况,及时发现问题并采取相应的措施,提高运营效率和质…

Setup Factory Crack,设置Factory项目快速入门

Setup Factory Crack,设置Factory项目快速入门 Setup Factory为开发人员提供了一种无需学习专有脚本语言即可创建灵活安装系统的解决方案。Setup Factory提供开发人员所需的自定义和高级控制功能,所有这些功能都来自Setup Factory Visual Design Environment。您甚至…

Nginx可视化Nginx-gui

Github:GitHub - onlyGuo/nginx-gui: Nginx GUI Manager 运行方式支持docker、window 下载后压缩,直接运行startup.bat 默认账号密码:admin/admin

产品体系架构202308版

1.前言 当我们不断向前奔跑时,需要回头压实走过的路。不断扩张的同时把相应的内容沉淀下来,为后续的发展铺垫基石。 不知从何时起,产品的架构就面向了微服务/中台化/前后端分离/低代码化/分布式/智能化/运行可观测化的综合体,让…

uni-app:实现列表单选功能

效果图&#xff1a; 核心解析&#xff1a; 一、 <view class"item_all" v-for"(item, index) in info" :key"index"><view classposition parameter-info text-over :classitem.checked?"checked_parameter":""…

C++学习——认识什么是STL以及string类的使用

一&#xff1a;认识STL 1.什么是STL 在日常的程序编写当中&#xff0c;假如我们需要交换两个数据就必须手动书写一个交换函数&#xff0c;之后再进行传参。这样才可以实现两个数据的交换。在很多情况下也是如此&#xff0c;我们通常需要的功能还得自己来写&#xff0c;写完之后…