代码:
colorgrad.m
function [VG, A, PPG] = colorgrad(f, T)
if (ndims(f)~=) || (size(f,)~=)
error('Input image must be RGB');
end
sh = fspecial('sobel');
sv = sh';
Rx = imfilter(double(f(:,:,)), sh, 'replicate');
Ry = imfilter(double(f(:,:,)), sv, 'replicate');
Gx = imfilter(double(f(:,:,)), sh, 'replicate');
Gy = imfilter(double(f(:,:,)), sv, 'replicate');
Bx = imfilter(double(f(:,:,)), sh, 'replicate');
By = imfilter(double(f(:,:,)), sv, 'replicate');
gxx = Rx.^ + Gx.^ + Bx.^;
gyy = Ry.^ + Gy.^ + By.^;
gxy = Rx.*Ry + Gx.*Gy + Bx.*By;
A = 0.5*(atan(*gxy./(gxx-gyy+eps)));
G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(*A) + *gxy.*sin(*A));
A = A + pi/;
G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(*A) + *gxy.*sin(*A));
G1 = G1.^0.5;
G2 = G2.^0.5;
VG = mat2gray(max(G1, G2));
RG = sqrt(Rx.^ + Ry.^);
GG = sqrt(Gx.^ + Gy.^);
BG = sqrt(Bx.^ + By.^);
PPG = mat2gray(RG + GG + BG);
if nargin ==
VG = (VG>T).*VG;
PPG = (PPG>T).*PPG;
end
demo.m
close all;clear all;clc;
f = imread('wo.jpg');
[VG,A,PPG] = colorgrad(f);
ppg = im2uint8(PPG);
ppgf = - ppg;
[M,N] = size(ppgf);
T=;
ppgf1 = zeros(M,N);
for ii = :M
for jj = :N
if ppgf(ii,jj)
% ppgf1(ii,jj)=;
ppgf1(ii,jj)=(T-ppgf1(ii,jj))/;
else %平滑区域
ppgf1(ii,jj)=/(-T)*(ppgf(ii,jj)-T);
end
end
end
ppgf1 = uint8(ppgf1);
figure;
subplot();imshow(ppgf);
subplot();imshow(ppgf1);
subplot();imhist(ppgf);
subplot();imhist(ppgf1);
figure;imshow(ppgf1);
效果:
Matlab图像处理(02)-图像基础
数据类 Matlab中和IPT中支持的基本数据类型如下: 名称 描述 double 双精度浮点数,范围-10308~10308 8字节 uint8 无符号1字节整数,范围[0, 255] uint1 ...
使用matlab批量处理图像后在指定文件夹存储
使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jp ...
【转载】从零实现3D图像引擎:(2)画2D直线不简单
原文:从零实现3D图像引擎:(2)画2D直线不简单 1. 数学分析 1) 画直线的问题 本来我以为画直线会很容易,随便拿个直线公式,遍历X求Y画出来不就完了么,但事实并非如此.以2D直线为例,因为3D ...
Qt之图形(简笔画-绘制卡通蚂蚁)
简述 关于简笔画的介绍很多,有动物.水果.蔬菜.交通工具等,通常会对绘制一步步进行拆分.组合.然后绘制为我们想要的结果. 下面来介绍另外的一个种类:昆虫类-卡通蚂蚁. 简述 绘制 效果 源码 绘制 效 ...
Qt之图形(简笔画-绘制漂亮的西瓜)
简述 Summer is coming-我们呢,为大家准备了丰盛的佳果-西瓜,清爽解渴,甘味多汁. 一笔一划学简笔画,分分钟让你掌握一门新技能,下面我们来绘制一个"盛夏之王"-西瓜 ...
CSS如何将图像转换为模糊图像?
在CSS中,可以使用filter属性来模糊处理图像:filter属性用于将图像转换为模糊图像.该属性主要用于设置图像的视觉效果. 语法: filter: blur() 属性值: ● blur():给图 ...
matlab在处理图像时为什么把数据转换为double型?
1 有些函数支持double型,而不支持uint8的数据类型,所以要转换 2 精度问题了,因为uint8进行数据处理的时候,容易造成数据溢出或精度不够. 为了节省存储空间,matlab为图像提供了特殊 ...
Matlab 视频与图像之间的相互转换
matlab版本是2015b,其中更新了部分函数库之前网上相关程序不适用于新版本,在此提供适用于新版本的程序: 帧序列转换为视频 function video = frames2video(frame ...
【matlab】用matlab 保存带标记图像、图片的方法总结
最近看了一些用matlab对图形图片进行保存的帖子和资源,关于图像保存的方法给大家分享一下这些方法是大家所使用方法的一个总结. 如今常用的方法有三种printf,imwrite,saveas下面分别介 ...
随机推荐
Linux初学:(二)Shell环境与命令基础
博客园(FOREVER_ENJOY):http://www.cnblogs.com/zyx1314/ 本文版权归作者所有:欢迎转载!请注明文章作者和原文连接 Shell是什么? 1. Shell作为应 ...
收到远程通知,怎么区分是点击通知栏提醒进去的还是在foreground收到的通知?
我现在是要区分点击通知栏的通知进入应用还是点击应用图标进入的,1,开始程序都是在后台.2,接受通知都是在foreground状态.applicationdidFinishLaunchWithOptio ...
Android开发UI之补间动画-Tween Animation
Tween Animation-补间动画 官网链接-http://developer.android.com/reference/android/view/animation/Animation.ht ...
Asp.net的对Excel文档的导入导出操作
刚刚初入职场,在休闲的时间写下了项目中用到的对Excel文档操作的方法以及总结,多的不说,直接上代码 public static void CreateExcel(DataSet ds, string ...
javaweb项目部署到tomcat服务器
http://jingyan.baidu.com/album/a501d80c0c65baec630f5ef6.html?picindex=8
jmeter笔记(2)--组件介绍
1.测试计划 测试计划(Test Plan)是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器. 2.Threads(Users)-线程组 每个测试需求的必备组件,是用来模拟用户并发 ...
dedeCMS解码
var str = 'arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98& ...
protobuf 协议 windows 下 C++ 环境搭建
1. 下载protobuf https://code.google.com/p/protobuf/downloads/list Protocol Buffers 2.5.0 full source - ...
Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)
在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...
python模块之datetime方法详细介绍
datetime Python提供了许多内置模块用于操作时间日期,如calendar,time,datetime,这篇文章主要是对datetime进行汇总,datetime模块的借口实现原则更加直观, ...