灰度级数k,k=2^b,称该图像为b比特图像。

降低灰度级数是靠2的幂次方

网上代码:https://blog.csdn.net/silence2015/article/details/68927360

function changereduce_factor(imgpath,reduce_factor)
% Write a computer program capable of reducing the number of intensity levels in an image from to ,
% in integer powers of . The desired number of intensity levels needs to be a variable input to your program.
f = imread(imgpath);
if reduce_factor<
reduce_factor=
else if reduce_factor>
reduce_factor=
end
end dfactor=uint8(^reduce_factor);
f_trans=(f/dfactor)*dfactor;
subplot(,,);
imshow(f);
subplot(,,);
imshow(f_trans); end

其中reduce_factor=8表示原图像是一张8bit图像,有灰度级dfactor是256,

所以(f/dfactor)取整只有两个结果0或者1,然后再乘灰度级就变成了黑白图片(只有两个灰度级)

那么当reduce不等于比特图像那个值的时候会出现什么结果,如果大于,那么图像是全黑的0,小于的话取整运算的结果将不只是0,1,还会出现更多数

但是还是小于比特图像数,也就做到了将灰度值降低。

pic=imread('pic/coltogray/1.jpg');
##gray_pic=rgb2gray(pic);
##figure()
##imshow(gray_pic) [x,y,z]=size(pic); graypic=zeros(x,y); level= dfactor=uint8(^level)
max1=;
min1=;
for i=:x
for j=:y
sum=;
for k =:z
sum=sum+pic(i,j,k)/;
end
graypic(i,j)=sum;
graypic1(i,j)=(sum/dfactor)*dfactor;
end
end graypic=uint8(graypic);
graypic1=uint8(graypic1); figure();
imshow(graypic);
figure();
imshow(graypic1);
%将三维图像压缩至一维即可以看作是灰度图像?

matlab 彩色图像转化成灰度图像,灰度图像降低灰度级的更多相关文章

  1. 怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图?

      分类: OpenCV [Q1]怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图? 进行灰度化,IplImage* pImg = cvLoadImage( "C:\\1.b ...

  2. 60701BMP彩色图像转化为灰度及二值图像

    1 概述 多媒体技术是一门综合了多种学科的新技术,其涉及到计算机科学与技术.通信和网络技术.人工智能技术.微电子技术.数字信号处理.图形处 理技术.声像技术等诸多学科.许多新技术的不断出现和体验,带给 ...

  3. [LeetCode] Integer to Roman 整数转化成罗马数字

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  4. HTML5将图片转化成字符画

    HTML5将图片转化成字符画 字符画大家一定非常熟悉了,那么如何把一张现有的图片转成字符画呢?HTML5让这个可能变成了现实,通过canvas,可以很轻松实现这个功能.其实原理很简单:扫描图片相应位置 ...

  5. xml格式的数据转化成数组

    将得到的xml格式的数据转化成数组 <?php //构造xml $url = "http://api.map.baidu.com/telematics/v3/weather?locat ...

  6. yii2得到的数据对象转化成数组

    yii2得到的数据对象转化成数组需要用到asArray().1.Customer::find(['id' => $id])->asArray()->one();2.$model = ...

  7. 通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母

    通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母 例如 我的中国心    ==> wdzgx 我的中国心ya ==> wdzgxya woai我的中国 ==> w ...

  8. 将数据转化成字符串时:用字符串的链接 还是 StringBuilder

    /* 目的:将数据转化成字符串时:用字符串的链接 还是 StringBuilder呢? */ public class Test{ public static void main(String[] a ...

  9. Eclipse-将svn上的项目转化成相应的项目

    这里假设svn上的项目为maven项目 首先从svn检出项目 其中项目名称code可自己定义更改新的名称 从svn检出的项目结构 然后将项目转化成相关的项目 转换加载中 加载/下载 maven相关内容 ...

随机推荐

  1. C# 简单日志帮助类LogHelper

    调用: LogHelper.Debug(""); LogHelper.Info(""); LogHelper.Error(""); 项目添加 ...

  2. MVC里模型常用的一些操作

    学习也是做买卖,归根到底还是学习成本的问题. 下面把微软集合类型的增删改查稍微罗列一下,大家看看它能带来的便利,和你要学的新东西,还有风险(纯粹的数据操作,不用框架,风险其实不大)相比,是否值得.来决 ...

  3. nginx fastcgi模块ngx_http_fastcgi_module详细解析、使用手册、完整翻译

    ngx_http_fastcgi_module 模块允许将请求传递给 FastCGI 服务器. 示例配置 location / { fastcgi_pass localhost:9000; fastc ...

  4. SVG跟随父级DIV自适应

    后台返回过来的是这样的SVG标签 <svg width="100%" height="100%" version="1.1" xmln ...

  5. 遇到了Microsoft Visual Studio is Busy!

    最近两天,我点击F5进入调试模式,VS左下角状态显示一直在加载符号文件,然后加载的超级慢,不多一会儿,显示VS正忙!如上图所示. 然后的然后,VS就卡死了~~~.之后,在网上查找原因和解决办法,找来找 ...

  6. 【LINQ】Select与SelectMany的区别

    Select() 和 SelectMany() 的工作都是依据源值生成一个或多个结果值.Select() 为每个源值生成一个结果值.因此,总体结果是一个与源集合具有相同元素数目的集合.与之相反,Sel ...

  7. Spring Boot集成Druid数据库连接池

    1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的.Druid的官方地址是:https://github.com/alibaba/druid 通过 ...

  8. Linux用户环境配置文件

    用户操作环境配置文件: 从/etc/skel目录复制过来 .bashrc             打开新终端           /etc/bashrc .bash_profile       用户登 ...

  9. springboot集成spring data ElasticSearch

    ES支持SpringBoot使用类似于Spring Data Jpa的方式查询,使得查询更加方便. 1.依赖引入 compile “org.springframework.boot:spring-bo ...

  10. python socket 传输文件

    推荐资料 https://www.cnblogs.com/xiaokang01/p/9865724.html socket传输文件 思路: # 先将报头转换成字符串(json.dumps), 再将字符 ...