5

I have an image with 400x400 image to identify different components from it. But when I try to identify components using that most of time it doesn't provide correct answers. So I need to know whether there are some kind of methods in javacv or opencv to improve the quality of the image or increase the size of the image without effecting to its quality ?

This is the sample image that I use. (This is the maximum size that I can get and I can't use any photo editing softwares in the project, because it's dynamically generated image.)

enter image description here

In my image processing I need to identify squares and rectangles that connects those squares. And specially I need to get the width and height of those using pixel values.

4

3 回答 3

3

如果您可以对其进行矢量化,您可以将其缩放到任何大小......并且在您的情况下,vestorization 非常简单,因为您在图像中有一些简单的几何对象。

所以,在我看来,你的方法应该是这样的:

  1. 以高阈值检测图像中的边缘(因为您有非常明显的对象)
  2. 向量化它们
  3. 将它们缩放到任何大小

您还应该查看以下链接:Increasing camera capture resolution in OpenCV

于 2012-07-16T07:29:50.040 回答
2

如果您坚持图像处理,最简单的方法是应用 equalizeHist()。这将增加对比度并改进后续步骤。

但是,这是一个biiiig'但是',你为什么要这样做?刚刚阅读这篇文章,我看到了另一种解决方案,并且快速谷歌证明我是对的:

Kabeja 是一个用于解析、处理和转换 Autodesk 的 DXF 格式的 Java 库。您可以从命令行使用 Kabeja 或嵌入到您的应用程序中。所有解析过的数据都可以通过类似 DOM 的 API 访问。

这意味着您可以直接从该图像中以文本格式提取所需的所有数据。可能类似于“在位置 x,y 有一个晶体管,或其他什么”。那么为什么要将该文件渲染成图像,然后分析该图像以提取组件呢?

如果你是为学校做的(我知道很多学校项目都是这样的),我建议你找一个真正的问题来解决,然后向你的老师提出。你会更乐意做一些不完全是胡说八道的事情。

于 2012-07-16T07:36:00.567 回答
2

正如mocap所建议的那样,我猜对图像进行矢量化是最好的选择。
您还可以使用增强工具,如锐化、饱和等。

于 2012-12-12T17:04:00.087 回答