我正在尝试导出单色“灰度”图像中特定像素的强度值。我有一些伪代码,但是到目前为止,我还无法实现真正有效的功能。
/**
* Retrieve the intensity value at location ('row', 'column') of the image 'img' and return it
* Note:
* - the 2D image is stored as an 8bit, 1D, row-major array of type byte
* - the data type byte is signed in Java
* - Slide 27 of chapter 2 introduces the representation of an image
* @param img in row major format
* @param row to evaluate
* @param column to evaluate
* @param width of img
* @param height of img
* @return the intensity value at row and column if within bounds, -1 otherwise
*/
public int getIntensityValue(byte[] img, int row, int column, int width, int height) {
int intensity = img[row,column];
return intensity;
}
也许这会帮助您:
http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html
http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html
BufferedImage img = ImageIO.read(new File("filePath.png"));
int sRbgColor = img.getRGB(int x, int y);
Color c = new Color(sRbgColor);
int red = c.getRed();
int green = c.getGreen();
int blue = c.getBlue();
如果是单色,则红色,绿色和蓝色应该相等。
实际上我想对每个像素做一些计算,为此我需要显式地访问每个像素。 如有任何帮助或建议,我们将不胜感激。
我只想弄清楚我的概念-访问CV::MAT的所有矩阵元素是否意味着我实际上访问了图像的所有像素值(灰度-1通道,颜色-3通道)?假设我的代码打印灰度矩阵的值(加载1通道图像,类型为CV_32FC1),如下所示,那么这意味着我只访问cv::mat的成员,还是我也访问图像的像素值(具有1通道灰度,类型为CV_32FC1)? 我对使用OpenCV进行图像处理还是一个新手,我想澄清一下我的想法。如果我错了,
主要内容:将彩色图像转换为灰度在前面的章节中,我们讨论了如何读取不同类型的输入图像(二进制,灰度,BGR等)。 在本章中,我们将学习如何将一种图像转换为另一种图像。 包中名为的类提供了将图像从一种颜色转换为另一种颜色的方法。 将彩色图像转换为灰度 使用方法将彩色图像转换为灰度。 以下是此方法的语法。 该方法接受以下参数 - src - 表示来源的矩阵。 dst - 表示目的地的矩阵。 code - 表示转换类型的整数代码,例如
本文向大家介绍彩色图像、灰度图像、二值图像和索引图像区别?相关面试题,主要包含被问及彩色图像、灰度图像、二值图像和索引图像区别?时的应答技巧和注意事项,需要的朋友参考一下 彩色图像:RGB图像。灰度图像:0-255像素值。二值图像:0和1,用于掩膜图像。 索引图像:在灰度图像中,自定义调色板,自定义输出256种颜色值。
以下程序演示如何将彩色图像读取为灰度并使用JavaFX窗口显示。 在这里通过将标志与带有彩色图像路径的字符串一起传递来读取图像。 假定以下是上述程序中指定的输入图像。那么输出结果应该为一个灰色的图片。
问题内容: 我正在尝试直接读取黑白图像。 我最近将OpenCv版本更新为3.0.0-dev,以前使用的代码不再起作用。 适用于2.4,但不能用于新版本,因为没有field 。 有什么建议? 注意:我知道可以使用,但是我不喜欢在代码中使用未命名的常量。谢谢! 问题答案: 该标志已重命名为。一般来说,标志现在以与它们所引用的功能有关的方式为名称加上前缀。(例如,标记以,标记以等等开头)