第一部分:分段(线性变换)函数

摘自百度百科:

灰度拉伸又叫:对比度拉伸,它是最基本的一种灰度变换,算法:使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。

它可以有选择的拉伸某段灰度区间以改善输出图像。如图,所示的变换函数的运算结果是将原图在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)相关推荐

  1. 灰度拉伸python_对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现

    1. 基本原理 对比度拉伸是扩展图像灰度级动态范围的处理.通过在灰度级中确定两个点来控制变换函数的形状.下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值. 2. 测试结果 图源自skimage ...

  2. [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割

    灰度变换,属于一个非常重要的概念.这里主要参考<Digital Image Processing> Rafael C. Gonzalez / Richard E. Woods 的第三章.书 ...

  3. Win8Metro(C#)数字图像处理--2.31灰度拉伸算法

    Win8Metro(C#)数字图像处理--2.31灰度拉伸算法 原文:Win8Metro(C#)数字图像处理--2.31灰度拉伸算法  [函数名称] 灰度拉伸函数GrayStretchProces ...

  4. 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)

    数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换.对数变换.伽马变换和分段线性变换) 空间域处理是直接对像素进行操作的方法,这是相对于频率域处理而言的.空间域处理主要分为两大类:灰度变换 ...

  5. 灰度拉伸python,Python OpenCV实例:图像灰度拉伸

    Python OpenCV实例:图像灰度拉伸 Python OpenCV实例:图像灰度拉伸 为什么80%的码农都做不了架构师?>>> #coding:utf-8 ''' 灰度拉伸 定 ...

  6. 【老生谈算法】matlab实现灰度图处理源码——灰度图处理

    matlab灰度图的处理源码 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab灰度图的处理程序.doc 2.算法详 ...

  7. 关于灰度拉伸的一点思考

    最近在做项目,涉及到车道的检测.由于在日光下,原本就是白色或者是黄色的车道线会比较得很不清晰,于是很自然的想到了灰度拉伸的方案,从少量数据来看的结果,是好的.以下图为例,左图是三通道图,中间是利用op ...

  8. 【python图像处理】图像灰度化处理、图像灰度线性变换、图像灰度非线性变换

    一.图像灰度化处理 1.最大值灰度处理方法 2.平均灰度处理方法 3.加权平均灰度处理方法 二.图像灰度线性变换 1.图像灰度上移变换 2.图像对比度增强变换 3.图像对比度减弱变换 4.图像灰度反色 ...

  9. java环境opencv灰度化闪退,opencv灰度化有关问题

    当前位置:我的异常网» VC/MFC » opencv灰度化有关问题 opencv灰度化有关问题 www.myexceptions.net  网友分享于:2013-12-30  浏览:139次 ope ...

最新文章

  1. 按下电源后的几秒钟,CPU在干嘛?
  2. nChain首席科学家CSW:闪电网络会把BCE变成空洞的幽灵
  3. 多语言切换jquery.i18n.min.js
  4. Matlab实用程序--图形应用-填充图
  5. springmvc简单示例
  6. 设计模式的C语言应用-责任链模式-第三章
  7. springboot配置监听器、过滤器和拦截器
  8. Netty工作笔记0066---Netty核心模块内容梳理
  9. Direct3D顶点结构使用总结
  10. mongodb排序_MongoDB排序
  11. null value in entry: destinationDir=null
  12. UE4开发工具 - COOKBOOK
  13. 网易云 计算机,网易云音乐电脑版2.7.4.198336_网易云音乐 - 系统之家
  14. 22计算机408考研—数据结构—排序(详解加例题)
  15. Layui选项卡Tab和Layui模板laytpl冲突问题
  16. CSS之九宫格面试题
  17. Python修改图片像素值(变彩色为黑白)
  18. 网关系统就该这么设计,万能通用,稳的一批!
  19. free ebooks: http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books
  20. thinkphp框架源码交易系统资源网站源码

热门文章

  1. 《交互式程序设计 第2版》一2.2 代码的本质
  2. 新技能Get:如何利用HTTP技术提升网页的加载速度
  3. linux任务计划详解
  4. 攻克难题最忌讳的就是投机取巧自作聪明
  5. 4 form j1 w 如何填写_设计必备方法,如何通过数据优化设计?
  6. RTOS原理与实现02:基本任务切换实现
  7. php mysql显示不出图片_图片显示不出来,但是数据库里有显示
  8. 提出离职后怎么定last day_不敢提离职?日本正在兴起的“辞职中介”业务,拯救社畜们于水深火热之中!...
  9. “通配符的匹配很全面, 但无法找到元素 ‘utillist‘ 的声明”的问题
  10. 用python实现excel 14个常用操作_用Python实现excel 14个常用操作