matlab 彩色图像转化成灰度图像,灰度图像降低灰度级
灰度级数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 彩色图像转化成灰度图像,灰度图像降低灰度级的更多相关文章
- 怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图?
分类: OpenCV [Q1]怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图? 进行灰度化,IplImage* pImg = cvLoadImage( "C:\\1.b ...
- 60701BMP彩色图像转化为灰度及二值图像
1 概述 多媒体技术是一门综合了多种学科的新技术,其涉及到计算机科学与技术.通信和网络技术.人工智能技术.微电子技术.数字信号处理.图形处 理技术.声像技术等诸多学科.许多新技术的不断出现和体验,带给 ...
- [LeetCode] Integer to Roman 整数转化成罗马数字
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- HTML5将图片转化成字符画
HTML5将图片转化成字符画 字符画大家一定非常熟悉了,那么如何把一张现有的图片转成字符画呢?HTML5让这个可能变成了现实,通过canvas,可以很轻松实现这个功能.其实原理很简单:扫描图片相应位置 ...
- xml格式的数据转化成数组
将得到的xml格式的数据转化成数组 <?php //构造xml $url = "http://api.map.baidu.com/telematics/v3/weather?locat ...
- yii2得到的数据对象转化成数组
yii2得到的数据对象转化成数组需要用到asArray().1.Customer::find(['id' => $id])->asArray()->one();2.$model = ...
- 通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母
通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母 例如 我的中国心 ==> wdzgx 我的中国心ya ==> wdzgxya woai我的中国 ==> w ...
- 将数据转化成字符串时:用字符串的链接 还是 StringBuilder
/* 目的:将数据转化成字符串时:用字符串的链接 还是 StringBuilder呢? */ public class Test{ public static void main(String[] a ...
- Eclipse-将svn上的项目转化成相应的项目
这里假设svn上的项目为maven项目 首先从svn检出项目 其中项目名称code可自己定义更改新的名称 从svn检出的项目结构 然后将项目转化成相关的项目 转换加载中 加载/下载 maven相关内容 ...
随机推荐
- 基于 Ubuntu 系统安装 CUDA 和 cuDNN
************************************************ 显卡:GTX 1050Ti 系统:Ubuntu 18.0.4 安装的CUDA:10.0 版本 **** ...
- .net core启用Swagger
启用 Swagger 页面 官方文档推荐两种框架:Swashbuckle 和 NSwag,这里使用 Swashbuckle 来生成接口文档. 目录 安装包 添加服务 配置中间件 添加 UI 设置 ...
- Redis配置过程中的问题
记录一下配置过程中的坑~~ 当Redis在服务器上安装完成后,get.set没有问题了,接下来在程序中使用看看... 首先 在配置文件redis.conf中,默认的bind 接口是127.0.0.1, ...
- Asp.net MVC企业级开发(02)---Log4net
Log4Net 是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等).日志就是程序的“黑匣子”,可以通过日志查看系统的运行过程,从而发现系统的问题. 日志的作 ...
- 在redis上实现分布式锁
/** *在redis上实现分布式锁 */ class RedisLock { private $redisString; private $lockedNames = []; public func ...
- weblogic漏洞
1 weblogic控制台地址暴露 ² 整改方法: 禁用weblogic控制台.在weblogic域(sguap-domain和base-domain)的config下的config.xml中 &l ...
- kubernetes学习之二进制部署1.16
服务器规划和系统初始化 一.服务器规划 10.255.20.205 Master01 kube-apiserver.kube-controller-manager.kube-scheduler.ETC ...
- Spark源码执行逻辑分析【基于案例SparkPi】
一.案例SparkPi代码 package scala import org.apache.spark.sql.SparkSession import scala.math.random /** Co ...
- 并发编程(六)--进程/线程池、协程、gevent第三方库
一.进程/线程池 1.进程池 (1)什么是进程池 如果需要创建的子进程数量不大,可以直接利用multiprocess中的Process来创建.但是当需要创建上百个或上千个,手动创建就较为繁琐,这时就可 ...
- javascript之DOM(四其他类型)
一.Text类型 文本节点由Text类型表示,指的是可以以字面意思解释的纯文本内容,其中包含HTML代码. nodeType=3 nodeName=#text nodeValue=文本内容 paren ...