Tag: 图像处理

Javax ImageIO IIO例外显然没有理由

嘿所有,我有一个Java问题。 对于我的高级研究class,我已经完成了,但我只需要分析我生成的图像中的一些数据。 我不想把它标记为作业,因为它不是任何必要任务的一部分……这是我自己想出来收集结果的东西。 我写了一个程序,逐个像素地比较两个图像。 它为两个目录中的所有.bmp文件执行此操作。 现在,我的程序将文件名读入一个String数组,并检查了所有文件名的值,所以我知道目录和文件名最初是正常访问的。 这是有问题的代码: public static void main(String[]args) throws IOException { File actualDir = new File(“C:\\Users\\Rowe\\Desktop\\testExpect”); String actualFiles[] = actualDir.list(); File expectedDir = new File(“C:\\Users\\Rowe\\Desktop\\testExpect2”); String expectedFiles[] = expectedDir.list(); int[][] stats = new int[actualFiles.length][6]; // Holds all info //Columns, Rows, Total, redMatches, shouldaBeenRed, badRed for(int i = 0; i < actualFiles.length; i++) […]

如何在java opencv中执行联合操作

我需要编写一个等效的Java OpenCV代码作为这个C++代码 Mat1b mask1, mask2; inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1); inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2); Mat1b mask = mask1 | mask2; 当我试图使用| 运算符会导致错误。 Mat mask1 = new Mat(); Mat mask2 = new Mat(); Core.inRange(hsv, new Scalar(0, 70, 50), new Scalar(10, 255, 255), mask1); Core.inRange(hsv, new Scalar(170, 70, 50), new […]

单色灰度图像,获得像素的强度

我试图在单色“灰度”图像中导出特定像素的强度值。 我有一些伪代码,但到目前为止,我一直无法实现真正​​有效的东西。 /** * 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 […]

拼接2张图片(OpenCV)

我正在尝试使用OpenCV Java API将两个图像拼接在一起。 但是,我得到错误的输出,我无法解决问题。 我使用以下步骤:1。检测function2.提取function3.匹配function。 4.找到单应性5.找到透视变换6.扭曲透视7.’缝合’2个图像,组合成图像。 但在某个地方,我出错了。 我认为这是我梳理2张图片的方式,但我不确定。 我在2张图片之间获得了214个不错的function匹配,但无法拼接它们? public class ImageStitching { static Mat image1; static Mat image2; static FeatureDetector fd; static DescriptorExtractor fe; static DescriptorMatcher fm; public static void initialise(){ fd = FeatureDetector.create(FeatureDetector.BRISK); fe = DescriptorExtractor.create(DescriptorExtractor.SURF); fm = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE); //images image1 = Highgui.imread(“room2.jpg”); image2 = Highgui.imread(“room3.jpg”); //structures for the keypoints from the 2 […]

在Java中将图像转换为灰度的错误亮度

我使用以下代码在Java中将图像转换为灰度: BufferedImage originalImage = ImageIO.read(new File(“/home/david/input.bmp”)); BufferedImage grayImage = new BufferedImage(originalImage.getWidth() , originalImage.getHeight() , BufferedImage.TYPE_BYTE_GRAY); ColorSpace gray = ColorSpace.getInstance(ColorSpace.CS_GRAY); ColorConvertOp colorConvert = new ColorConvertOp(gray, null); colorConvert.filter(originalImage, grayImage); ImageIO.write(grayImage, “bmp”, new File(“/home/david/output_java.bmp”)); 这似乎有效,但问题是输出图像与gimp生成的灰度图像非常不同(参见下面的示例)。 我可以控制图像是如何生成的? 我如何才能使结果与gimp结果更相似? 原始图片: 在Java中生成的灰度图像: 在Gimp中生成的灰度图像( Image -> Mode -> Grayscale ): 顺便说一下:我有一堆来自ffmpeg的图像(带有灰色选项),它们就像Gimp图像所以因为这样我想要那样的图像。

将WMF转换为PNG / BMP / JPG

如何使用自定义输出分辨率将一个WMF文件转换为PNG / BMP / JPG格式? 示例:获取WMF文件并输出2000×2000 px的PNG文件。 提前致谢。

在没有ImageObserver的情况下在Java中获取图像的高度和宽度

我试图在没有ImageObserver的情况下在Java中获取图像的height和width (通过URL)。 我目前的代码是: public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File xmlImages = new File(“C:\\images.xml”); BufferedReader br = new BufferedReader(new FileReader(xmlImages)); File output = new File(“C:\\images.csv”); BufferedWriter bw = new BufferedWriter(new FileWriter(output)); StringBuffer sb = new StringBuffer(); String line = null; String newline = System.getProperty(“line.separator”); while((line = br.readLine()) != […]

将图像保存为BLOB时如何在带有文本的JSP中显示它?

我做了很多谷歌搜索,但我找不到具体的答案。 我使用Spring MVC 3将用户图像保存到数据库。 我现在成功地做到了。 我将图像保存为BLOB 。 我可以将图像检索为byte[] 。 无论文件类型 – jpg,png,gif等(我的图像上传是图像文件类型不可知)我想允许jpg和gif和png让我们说渲染,即我的显示技术不应该硬编码只显示一种类型图像,比如jpg,它应该能够显示所有图像,因为它们是以各自的类型上传的 – 这是要求。 现在,我想做两件事 如果必须,重新调整图像大小。 即。 200乘200 在带有文本的JSP中呈现图像。 这是一个用户个人资料页面,所以我需要显示文本和图像。 spring mvc如何使用文本渲染图像? 我从研究中了解到你可以为jsp使用BufferedImage类型吗? 但我的问题是,如果内容类型严格是image/jpeg , image/gif ,似乎只能使用它。 我遇到了一些resize的链接: http://forum.springsource.org/archiv…p/t-46021.html 任何建议欢迎,如果这些工作但最终我需要显示图像。 请传递你的想法。 谢谢。

找到2Darrays或直方图的峰之间的两个主要峰和谷

for (int i = 0; i < c.length; i++) { for(int j=0; j<c[i].length;j++) { if(peak1[i]<c[i][j]){ peak1[i] = c[i][j]; peak1loc1[i]= j; } } println(peak1[2]); println(peak2[2]);` 这是我到目前为止所尝试的。 由于某种原因, peak1和peak2打印相同的值。 我有一个二维数组,保存图像的RGB颜色值。 我想找到每个通道的两个主要峰(r,g,b),以及这两个主要峰之间的谷,所以我将得到红色的两个主要峰,绿色的两个主要峰,蓝色的两个主要峰和山谷(主峰之间的最小值),总共三个山谷。 有没有算法,或者任何人都可以给我一些想法,我怎么能找到这些? 伪代码真的很有帮助。

使用BufferedImage从Java中获取RGB colourspace的灰度像素值

有人知道将从 getRGB(i,j)返回的RGBint值转换为灰度值的简单方法吗? 我打算通过使用它来分解它们来简单地平均RGB值; int alpha = (pixel >> 24) & 0xff; int red = (pixel >> 16) & 0xff; int green = (pixel >> 8) & 0xff; int blue = (pixel) & 0xff; 然后平均红色,绿色,蓝色。 但我觉得这样一个简单的操作我必须遗漏一些东西…… 在回答了一个不同的问题之后,我应该清楚自己想要什么。 我想获取从getRGB(i,j)返回的RGB值,并将其转换为0-255范围内的白色值,表示该像素的“暗度”。 这可以通过平均等来实现,但我正在寻找一个OTS实现来节省几行。