导航:首页 > 编程语言 > java图片灰度

java图片灰度

发布时间:2023-09-01 20:06:02

A. 有大侠知道java或是js或是css中怎么将单通道灰度图片与三通道灰度图片吗有没有什么相关的算法

int ImageStretchByHistogram(IplImage *src1,IplImage *dst1) 
/*************************************************
Function: 通过直方图变换进行图像增强旁团御,将图像灰度的或枯域值拉伸运岩到0-255
src1: 单通道灰度图像
dst1: 同样大小的单通道灰度图像
*************************************************/
{
assert(src1->width==dst1->width);
double p[256],p1[256],num[256];

memset(p,0,sizeof(p));
memset(p1,0,sizeof(p1));
memset(num,0,sizeof(num));
int height=src1->height;
int width=src1->width;
long wMulh = height * width;

//statistics
for(int x=0;x<src1->width;x++)
{
for(int y=0;y<src1-> height;y++){
uchar v=((uchar*)(src1->imageData + src1->widthStep*y))[x];
num[v]++;
}
}
//calculate probability
for(int i=0;i<256;i++)
{
p[i]=num[i]/wMulh;
}

//p1[i]=sum(p[j]); j<=i;
for(int i=0;i<256;i++)
{
for(int k=0;k<=i;k++)
p1[i]+=p[k];
}

// histogram transformation
for(int x=0;x<src1->width;x++)
{
for(int y=0;y<src1-> height;y++){
uchar v=((uchar*)(src1->imageData + src1->widthStep*y))[x];
((uchar*)(dst1->imageData + dst1->widthStep*y))[x]= p1[v]*255+0.5;
}
}
return 0;
}

void CCVMFCView::OnImageAdjustContrast()
{
if(workImg->nChannels>1)
OnColorToGray();
Invalidate();
dst=cvCreateImage(cvGetSize(workImg),workImg->depth,workImg->nChannels);
ImageStretchByHistogram(workImg,dst);
m_dibFlag=imageReplace(dst,&workImg);
Invalidate();
}

这个是C++代码格式的,你可以参考一下思路

B. java 根据图片的rgb求灰度值

public int filterRGB(int x, int y, int rgb) {

int a = rgb & 0xff000000;//将最高位(24-31)的信息(alpha通道)存储到a变量
int r = (rgb >> 16) & 0xff;//取出次高位(16-23)红色分量的信息
int g = (rgb >> 8) & 0xff;//取出中位(8-15)绿色分量的信息
int b = rgb & 0xff;//取出低位(0-7)蓝色分量的信息
rgb = (r * 77 + g * 151 + b * 28) >> 8; // NTSC luma,算出灰度值
return a | (rgb << 16) | (rgb << 8) | rgb;//将灰度值送入各个颜色分量
}

C. java 中如何获得灰度图像的像素值,getRGB和getRaster有什么区别

关于图像像素值,我想要先讲一下Java中如何组织一个图像对象BufferedImage的,
一个BufferedImage的像素数据储存在Raster中,ColorModel里面储存颜色空间,类型等
信息,当前Java只支持一下三种图像格式- JPG,PNG,GIF,如何向让Java支持其它格式,首
先要 完成Java中的图像读写接口,然后打成jar,加上启动参数- Xbootclasspath/p
newimageformatIO.jar即可。
取得BufferedImage的代码如下:
File file = new File("D:\\test\\blue_flower.jpg");
BufferedImage image = ImageIO.read(file);

取得像素使用getRGB,代码如下:
int type= image.getType();
if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )
return (int [])image.getRaster().getDataElements(x, y, width, height, pixels );
else
return image.getRGB( x, y, width, height, pixels, 0, width );

写入像素,才可能用到getRaster,在type为ARGB 或RGB时,必须使用getRaster().setDataElements方式设置,其他格式直接setRGB,代码如下:
int type= image.getType();
if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )
image.getRaster().setDataElements(x, y, width, height, pixels );
else
image.setRGB(x, y, width, height, pixels, 0, width );

D. java 8位灰度图的灰度值怎么获取

publicintfilterRGB(intx,inty,intrgb){
inta=rgb&0xff000000;//将最高位(24-31)的信息(alpha通道)存储到a变量
intr=(rgb>>16)&0xff;//取出次高位(16-23)红色分量的信息
intg=(rgb>>8)&0xff;//取出中位(8-15)绿色分量的信息
intb=rgb&0xff;//取出低位(0-7)蓝色分量的信息
rgb=(r*77+g*151+b*28)>>8;//NTSCluma,算出灰度值
returna|(rgb<<16)|(rgb<<8)|rgb;//将灰度值送入各个颜色分量
}

阅读全文

与java图片灰度相关的资料

热点内容
app根据什么看是否注册 浏览:928
冰箱压缩机烫手老跳闸 浏览:254
php日志系统架构 浏览:453
udp获取服务器ip地址 浏览:985
能把心里的恐惧解压出来的视频 浏览:368
三丰云上传服务器流程 浏览:812
php类常亮 浏览:819
如何用纸尿裤做解压玩具 浏览:608
程序员年龄和工资 浏览:766
压缩空气的特性简介 浏览:564
广乐美app是做什么的 浏览:323
android的spinner属性 浏览:929
店家帮平台源码 浏览:973
源码编辑器绘制图形 浏览:951
长沙云服务器提供商 浏览:107
51单片机测脉冲宽度 浏览:286
文件夹弄成二维码 浏览:283
python字典循环添加 浏览:692
闲置服务器怎么收费 浏览:162
阅读app是用什么开发的 浏览:37