「java灰度图像」java灰度图像显示
今天给各位分享java灰度图像的知识,其中也会对java灰度图像显示进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 怎么判断一幅图像是否是灰度图像还是彩色图像?
- 2、有大侠知道java或是js或是css中怎么将单通道灰度图片与三通道灰度图片吗?有没有什么相关的算法啊?
- 3、java 8位灰度图的灰度值怎么获取,用ImageIO获得的怎么和matlab获得的不一样,希望高手能指教一下!
- 4、java 8位灰度图的灰度值怎么获取
- 5、java 中如何获得灰度图像的像素值,getRGB和getRaster有什么区别?
java 怎么判断一幅图像是否是灰度图像还是彩色图像?
看RGB的数值吧!具体我也不大清楚!RGB都是有数值的,看它在那个值之间,就判断它什么颜色!
有大侠知道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;xsrc1-width;x++)
{
for(int y=0;ysrc1- height;y++){
uchar v=((uchar*)(src1-imageData + src1-widthStep*y))[x];
num[v]++;
}
}
//calculate probability
for(int i=0;i256;i++)
{
p[i]=num[i]/wMulh;
}
//p1[i]=sum(p[j]); j=i;
for(int i=0;i256;i++)
{
for(int k=0;k=i;k++)
p1[i]+=p[k];
}
// histogram transformation
for(int x=0;xsrc1-width;x++)
{
for(int y=0;ysrc1- 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-nChannels1)
OnColorToGray();
Invalidate();
dst=cvCreateImage(cvGetSize(workImg),workImg-depth,workImg-nChannels);
ImageStretchByHistogram(workImg,dst);
m_dibFlag=imageReplace(dst,workImg);
Invalidate();
}
这个是C++代码格式的,你可以参考一下思路
java 8位灰度图的灰度值怎么获取,用ImageIO获得的怎么和matlab获得的不一样,希望高手能指教一下!
1.调用matlab的图像读取函数imread读图片,把图片放在work文件夹下
I = imread('样品.jpg');
2.变为灰度图
G = rgb2gray(I);
3.双击workspace中的G项,在弹出的array edit中就看到了灰度矩阵
java 8位灰度图的灰度值怎么获取
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;//将灰度值送入各个颜色分量
}
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 );
java灰度图像的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java灰度图像显示、java灰度图像的信息别忘了在本站进行查找喔。
发布于:2023-01-09,除非注明,否则均为
原创文章,转载请注明出处。