灰度图转彩色图(伪彩色处理)

将8Bit灰度数据转化为Bgr24的彩色图像

8bit灰度数据:byte[] GrayValue    长度:width * height

PixelFormat pixelFormat = PixelFormats.Bgr24;
byte[]
colorvalues = GrayToColor(GrayValue);

ByteSize = Width * Height;

IntPtr dataPtr = IntPtr.Zero;

GCHandle _hObject = GCHandle.Alloc(colorvalues,
GCHandleType.Pinned);//using System.Runtime.InteropServices;

dataPtr = _hObject.AddrOfPinnedObject();
BitmapSource bitmap
= BitmapSource.Create(Width, Height, 0, 0, pixelFormat, null, dataPtr, ByteSize
* 3, 3 *Width);
_hObject.Free();

public byte[] GrayToColor(byte [] grayvalue)
{

byte[] rgbValues = new byte[Height * Width * 3];
for (int i = 0;
i < Height * Width; i++)
{
int j = i *
3;
if (grayvaluer[i] < 64)
{

rgbValues[j + 2] = 0;
rgbValues[j + 1] =
(byte)(4 * grayvalue[i]);
rgbValues[j] = 255;

}
else if (grayvaluer[i] >= 64 &&
grayvalue[i] < 128)
{
rgbValues[j +
2] = 0;
rgbValues[j + 1] = 255;

rgbValues[j] = (byte)(2 * 255 - 4 * grayvalue[i]);
}

else if (grayvalue[i] >= 128 && grayvalue[i] < 192)

{
rgbValues[j + 2] = (byte)(4 *
grayvalue[i] - 2 * 255);
rgbValues[j + 1] = 255;

rgbValues[j] = 0;
}
else

{
rgbValues[j + 2] = 255;

rgbValues [ j + 1] = (byte)(4 * 255 - 4 * grayvalue[i]);

rgbValues[j] = 0;
}
}

return rgbValues;
}

灰度图转彩色图(伪彩色处理),布布扣,bubuko.com

时间: 2024-10-18 17:06:16

灰度图转彩色图(伪彩色处理)的相关文章

彩色图到灰度图究竟是怎么变换的

??之前对彩色图与灰度图仅仅停留在前者是3通道后者是单通道的理解上.我也知道计算机看图片是将它们当成数组,但是一直搞不清楚将一张彩色图转变为灰度图是怎么操作的.当然,很多库函数都提供借口,包括OpenCV.PIL等.这里我参考https://blog.csdn.net/saltriver/article/details/79677116 手动实现将一张彩色图转换为灰色图.当然还是以帅气的哈士奇.jpg作为我的练习对象,看到它敲代码都有动力. from PIL import Image impor

彩色图转化成灰度图

对于图像由彩色图转化为灰度图有三种方法分别为 加权法 均值法 最大值法! 加权法就是  GRAY==0.3*R+0.59*G+0.11*B 均值法就是 GRAY==(R+G+B)/3 最大值发就是  max(R,G,B) A=imread('D:\lena.BMP');r=double(A(:,:,1));g=double(A(:,:,2));b=double(A(:,:,3));[m,n]=size(r);bw=zeros(m,n);bw=0.3.*r+0.59.*g+0.11.*b;subp

OpenNI1.5获取华硕XtionProLive深度图和彩色图并用OpenCV显示

华硕XtionPro类似Kinect,都是体感摄像机,可捕捉深度图和彩色图, 详细参数见:http://www.asus.com.cn/Multimedia/Xtion_PRO_LIVE/specifications/ 实验设定的深度图和彩色图大小都是640*480,如下: 彩色图 未配准时的深度图 配准到彩色图后的深度图 深度图配准到彩色图后的1:1融合图 彩色图配准到深度图后的1:1融合图 代码: #include <stdlib.h> #include <iostream>

OpenNI2获取华硕XtionProLive深度图和彩色图并用OpenCV显示

使用OpenNI2打开XtionProLive时有个问题,彩色图分辨率无论如何设置始终是320*240,深度图倒是可以设成640*480,而OpenNI1.x是可以获取640*480的彩色图的. 彩色图 配准到彩色图后的深度图 1:1融合图 代码: #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #

灰度于RGB彩色

图像灰度值的概念是什么?灰度也可以认为是亮度,简单说就是色彩的深浅程度. 实际上在我们的日常生活中,通过三原色色彩深浅的组合,可以组成各种不同的颜色.产品能够展现的灰度数量越多,也就意味着这款产品的色彩表现力更加丰富,能够实现更强的色彩层次.例如三原色16级灰度,能显示的颜色就是16×16×16=4096色.不过目前的产品256级灰度已经非常地普遍了. 所谓颜色或灰度级指黑白显示器中显示像素点的亮暗差别,在彩色显示器中表现为颜色的不同,灰度级越多,图像层次越清楚逼真.灰度级取决于每个像素对应的刷

画图实例:一个计算机商店的基于Wed的订单处理系统的DFD图和ER图

DFD图: 0层DFD图: 1层DFD图: 2层DFD图: ER图:

UML学习(类图和序列图等)

visio绘制UML图使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?新建->选择绘图类型->选择软件与数据库模板->选择UML模型图->注意:如果不选择UML模型图的话,可能会出现无法编辑形状文本,提示“此UML形状所在的绘图页不是UML模型图的一部分,该形状设计用于利用UML模型图模板创建的绘图”所以利用Visio绘UML图第一步就是选择绘图类型为软件中的UML模型图. 还可以参考百度云盘的UML学习资料 参考:UML中几种类间关系:

HDU5772 String problem 最大权闭合图+巧妙建图

题意:自己看吧(不是很好说) 分析: 网络流:最大权闭合子图. 思路如下: 首先将点分为3类 第一类:Pij 表示第i个点和第j个点组合的点,那么Pij的权值等于w[i][j]+w[j][i](表示得分) 第二类:原串中的n个点每个点拆出一个点,第i个点权值为 –a[s[i]] (表示要花费) 第三类:对于10种字符拆出10个点,每个点的权值为  -(b[x]-a[x]) 那么我们可以得到一个关系图 ,对于第一类中的点Pij,如果想要选择Pij,你就必须要选中第二类中的点i和j,对于第二类中的点

QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)

QT弹出模态对话框做法: 1.新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图: 2.然后在使用的时候: MyDialog dlg(this); dlg.exec(); 如果不加this,则会在任务管理器里面产生一个新的EXE. 3.如果对话框的标题是自定义,不想使用系统的标题,这时候需要在代码中加入: setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint ); setAttr