繁体   English   中英

如何在javacv或opencv中开始图像处理之前提高图像质量?

[英]How to improve the image quality before the image processing start in javacv or opencv?

我有一个400x400图像的图像,以识别它的不同组件。 但是,当我尝试使用大多数时间来识别组件时,它无法提供正确的答案。 所以我需要知道javacv或opencv中是否有某种方法可以提高图像质量或增加图像大小而不影响图像质量?

这是我使用的示例图像。 (这是我可以获得的最大尺寸,我不能在项目中使用任何照片编辑软件,因为它是动态生成的图像。)

在此输入图像描述

在我的图像处理中,我需要识别连接这些方块的正方形和矩形。 特别是我需要获得那些使用像素值的宽度和高度。

你可以将它缩放到任何尺寸,如果你可以对它进行矢量化......在你的情况下,由于你在图像中有一些简单的几何对象,背心很简单。

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

  1. 使用高阈值检测图像中的边缘(因为您有非常不同的对象)
  2. 矢量化它们
  3. 将它们缩放到任何尺寸

您还应该查看以下链接: 在OpenCV中提高相机捕获分辨率

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

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

Kabeja是一个用于解析,处理和转换Autodesk DXF格式的Java库。 您可以使用CommandLine中的Kabeja或嵌入到您的应用程序中。 可以使用类似DOM的API访问所有已解析的数据。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM