灰度拉伸python_灰度变换之灰度线性拉伸(算法1)
第一部分:分段(线性变换)函数
摘自百度百科:
灰度拉伸又叫:对比度拉伸,它是最基本的一种灰度变换,算法:使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。
它可以有选择的拉伸某段灰度区间以改善输出图像。如图,所示的变换函数的运算结果是将原图在a到b之间的灰度拉伸到c到d之间。如果一幅图像的灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来拉伸(斜率>1)物体灰度区间以改善图像;同样如果图像灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。
原理:函数表达式
第二天睡饱了再看这个函数是如何构造的:选取了四个点(0,0) (x1,y1) (x2,y2) (255,255)
先计算斜率 然后再点斜式,(x1,y1) (x2,y2)自己设定
然后可以不断调整整个函数的图像。
分段函数的图像表达式:
代码:
function out = MySegmentLinear(I,x1,x2,y1,y2)
%功能:实现灰度图像的分段线性变换
%理论基础:http://pan.baidu.com/s/1dFoFuSD
%输入参数I是uint8类型的灰度图像数据;
I=im2double(I);
[M,N] = size(I);
out = zeros(M,N);
for i=1:M
for j=1:N
if I(i,j)
out(i,j) = y1 * I(i,j) / x1;
elseif I(i,j)>x2
out(i,j) = (I(i,j)-x2)*(1-y2)/(1-x2) + y2;
else
out(i,j) = (I(i,j)-x1)*(y2-y1)/(x2-x1) + y1;
end
end
end
out=255.*out;
out=uint8(out);
end
第二部分:RGB分别提取出3个图像出来
_________________________________________________________________________________________________
>> image = imread('D:\example.jpg');
>> image_r=image(:,:,1);
>> image_g=image(:,:,2);
>> image_b=image(:,:,3);
>> zero = zeros(size(image_r));
>> R=cat(3,image_r,zero,zero);
>> G=cat(3,zero,image_g,zero);
>> B=cat(3,zero,zero,image_b);
>> RGB=cat(3,image_r,image_g,image_b);
>> subplot(2,2,1),imshow(image_r),title('Red component');
>> subplot(2,2,2),imshow(image_g),title('green component');
>> subplot(2,2,3),imshow(image_g),title('blue component');
>> subplot(2,2,4),imshow(RGB),title('original image');
第三部分:彩色图像对比度增强
image = imread('90.jpg'); %读取一个图片
image_r=image(:,:,1); %提取分量组成的图片
image_g=image(:,:,2);
image_b=image(:,:,3);
Sp_r=MySegmentLinear(image_r,0.3,0.7,0.00,1.00); %R分量组成的图片进行对比度拉伸
Sp_g=MySegmentLinear(image_g,0.3,0.7,0.00,1.00);
Sp_b=MySegmentLinear(image_b,0.3,0.7,0.00,1.00);
RGB=cat(3,Sp_r,Sp_g,Sp_b);
imshow(RGB);
效果:
原图:
灰度拉伸python_灰度变换之灰度线性拉伸(算法1)相关推荐
- 灰度拉伸python_对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现
1. 基本原理 对比度拉伸是扩展图像灰度级动态范围的处理.通过在灰度级中确定两个点来控制变换函数的形状.下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值. 2. 测试结果 图源自skimage ...
- [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
灰度变换,属于一个非常重要的概念.这里主要参考<Digital Image Processing> Rafael C. Gonzalez / Richard E. Woods 的第三章.书 ...
- Win8Metro(C#)数字图像处理--2.31灰度拉伸算法
Win8Metro(C#)数字图像处理--2.31灰度拉伸算法 原文:Win8Metro(C#)数字图像处理--2.31灰度拉伸算法 [函数名称] 灰度拉伸函数GrayStretchProces ...
- 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)
数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换.对数变换.伽马变换和分段线性变换) 空间域处理是直接对像素进行操作的方法,这是相对于频率域处理而言的.空间域处理主要分为两大类:灰度变换 ...
- 灰度拉伸python,Python OpenCV实例:图像灰度拉伸
Python OpenCV实例:图像灰度拉伸 Python OpenCV实例:图像灰度拉伸 为什么80%的码农都做不了架构师?>>> #coding:utf-8 ''' 灰度拉伸 定 ...
- 【老生谈算法】matlab实现灰度图处理源码——灰度图处理
matlab灰度图的处理源码 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab灰度图的处理程序.doc 2.算法详 ...
- 关于灰度拉伸的一点思考
最近在做项目,涉及到车道的检测.由于在日光下,原本就是白色或者是黄色的车道线会比较得很不清晰,于是很自然的想到了灰度拉伸的方案,从少量数据来看的结果,是好的.以下图为例,左图是三通道图,中间是利用op ...
- 【python图像处理】图像灰度化处理、图像灰度线性变换、图像灰度非线性变换
一.图像灰度化处理 1.最大值灰度处理方法 2.平均灰度处理方法 3.加权平均灰度处理方法 二.图像灰度线性变换 1.图像灰度上移变换 2.图像对比度增强变换 3.图像对比度减弱变换 4.图像灰度反色 ...
- java环境opencv灰度化闪退,opencv灰度化有关问题
当前位置:我的异常网» VC/MFC » opencv灰度化有关问题 opencv灰度化有关问题 www.myexceptions.net 网友分享于:2013-12-30 浏览:139次 ope ...
最新文章
- 按下电源后的几秒钟,CPU在干嘛?
- nChain首席科学家CSW:闪电网络会把BCE变成空洞的幽灵
- 多语言切换jquery.i18n.min.js
- Matlab实用程序--图形应用-填充图
- springmvc简单示例
- 设计模式的C语言应用-责任链模式-第三章
- springboot配置监听器、过滤器和拦截器
- Netty工作笔记0066---Netty核心模块内容梳理
- Direct3D顶点结构使用总结
- mongodb排序_MongoDB排序
- null value in entry: destinationDir=null
- UE4开发工具 - COOKBOOK
- 网易云 计算机,网易云音乐电脑版2.7.4.198336_网易云音乐 - 系统之家
- 22计算机408考研—数据结构—排序(详解加例题)
- Layui选项卡Tab和Layui模板laytpl冲突问题
- CSS之九宫格面试题
- Python修改图片像素值(变彩色为黑白)
- 网关系统就该这么设计,万能通用,稳的一批!
- free ebooks: http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books
- thinkphp框架源码交易系统资源网站源码
热门文章
- 《交互式程序设计 第2版》一2.2 代码的本质
- 新技能Get:如何利用HTTP技术提升网页的加载速度
- linux任务计划详解
- 攻克难题最忌讳的就是投机取巧自作聪明
- 4 form j1 w 如何填写_设计必备方法,如何通过数据优化设计?
- RTOS原理与实现02:基本任务切换实现
- php mysql显示不出图片_图片显示不出来,但是数据库里有显示
- 提出离职后怎么定last day_不敢提离职?日本正在兴起的“辞职中介”业务,拯救社畜们于水深火热之中!...
- “通配符的匹配很全面, 但无法找到元素 ‘utillist‘ 的声明”的问题
- 用python实现excel 14个常用操作_用Python实现excel 14个常用操作