灰度级数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. .NET Standard和.NET Core是什么关系(转载)

    .NET Standard vs .NET Core 问: I have read about the difference between .NET Standard and .NET Core, ...

  2. 《Real World Haskell》内容脉络整理

    p.s.  其实就是28–(6入门[1~4,6])-(10暂不用[17,20~28])=13网页啊! 1~ 6 章: 语法入门 (类型,函数,表达式语法糖,typeclass) 7~13章:  熟练/ ...

  3. PIE SDK加载WMS服务数据

    1.   功能简介 WMS服务,WMS是OGC标准中比较简单也是比较重要的标准之一.它全称是“Web Map Service”(网络地图服务):利用具有地理空间位置信息的数据制作地图.其中将地图定义为 ...

  4. Python连接MongoDB数据库并执行操作

    原文:https://blog.51cto.com/1767340368/2092813 环境设置: [root@mongodb ~]# cat /etc/redhat-release CentOS ...

  5. 简述Linux开机启动流程

    计算机开机是一个神秘的过程.我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面.然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或 ...

  6. Spring扩展点之Aware接口族

    引言 Spring中提供了各种Aware接口,方便从上下文中获取当前的运行环境,比较常见的几个子接口有:BeanFactoryAware,BeanNameAware,ApplicationContex ...

  7. 初阶sql注入总结

    0x00 前言 sql注入是通过用户输入构造语句以实现目的.一句话,不要相信任何用户输入的内容,做好防护. 0x01 传参方式 传参方式一般通过get方式,或者post方式提交,前者的优点是效率高,后 ...

  8. weblogic漏洞

    1 weblogic控制台地址暴露 ²  整改方法: 禁用weblogic控制台.在weblogic域(sguap-domain和base-domain)的config下的config.xml中 &l ...

  9. Linux的DNS主从服务器部署

    下面的部署是在Linux的DNS正向解析部署上进行修改的. 如果有什么问题或者错误,可以访问上篇帖子 下面开始有关DNS的服务部署.<DNS主从服务器> 环境描述: 192.168.196 ...

  10. Linux系统运行模式介绍

    Linux运行模式 自由服务,即不需要用户独立去安装的软件服务,而是在系统安装好之后就可以直接使用的服务(内置服务). 运行模式也称为运行级别,属于linux的自有服务. 运行模式可以理解为一旦你开机 ...