Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:对图像的一部分进行操作的有效方法_Java_Opencv - Fatal编程技术网

Java:对图像的一部分进行操作的有效方法

Java:对图像的一部分进行操作的有效方法,java,opencv,Java,Opencv,因此,对于大多数图像操作,我们使用openCV模块。我面临的问题是,当我只想在图像的特定部分执行操作时 现在我正在遍历整个像素矩阵,并使用get和put获取像素值 但我知道这不是一种有效的手术方式 比如,如果我只想在眼睛上做高斯模糊,那么首先我必须在图像的整个副本上做高斯模糊。然后使用眼睛的轮廓点创建遮罩,然后遍历遮罩行和列,将模糊像素复制到原始图像 这是一种非常低效的方法。 此外,我们有子矩阵的概念,但它将只采用矩形,我们可能不需要在所有情况下 既然我们有了面具,原始图像,我们怎么能对它进行操

因此,对于大多数图像操作,我们使用
openCV
模块。我面临的问题是,当我只想在图像的特定部分执行操作时

现在我正在遍历整个像素矩阵,并使用
get
put
获取像素值

但我知道这不是一种有效的手术方式

比如,如果我只想在眼睛上做
高斯模糊
,那么首先我必须在图像的整个副本上做高斯模糊。然后使用眼睛的轮廓点创建遮罩,然后遍历遮罩行和列,将模糊像素复制到原始图像

这是一种非常低效的方法。 此外,我们有子矩阵的概念,但它将只采用矩形,我们可能不需要在所有情况下

既然我们有了面具,原始图像,我们怎么能对它进行操作呢


PS:寻找Java解决方案

我认为没有简单的内置函数来模糊具有随机形状的图像的子区域。我建议您遵循以下步骤:

  • 从轮廓坐标点的最小值和最大值定义一个矩形形状,并在该矩形中循环。这将允许您为轮廓定义一个最小面积矩形,并在其中循环,而不是在整个图像中循环
  • 然后只模糊随机轮廓内的像素。您可以使用内置函数执行
第一步,它只是循环中的一个条件,您不必创建掩码或类似的东西。
很抱歉,我不懂Java,否则我会帮您编写一段代码。

您说的我们在所有情况下都可能不需要是什么意思?你的意思是你不想把一个矩形作为一个形状?@ROS_OPENCV是的,大多数操作不是针对一个矩形,而是一个不同的形状。那么这个形状是如何定义的,比如说眼睛?@ROS_OPENCV形状是通过使用像dlib这样的物体检测来定义的,它可以在图像中为我们提供点。你知道你的物体在哪里,为什么不对它们的点进行模糊处理?你不必浏览整个图像,而是直接去你想模糊的地方!