标签: shapes

重叠形状识别 (OpenCV)

我有一个简单的图像,其中包含一些形状:一些矩形和一些椭圆形,总共 4 或 5 个。形状可以旋转、缩放和重叠。有一个示例输入: 示例图片 我的任务是检测所有这些图形并准备一些有关它们的信息:大小、位置、旋转等。在我看来,核心问题是形状可以相互重叠。我尝试搜索一些有关此类问题的信息,发现 OpenCV 库非常有用。

OpenCV 能够检测轮廓,然后尝试将椭圆或矩形拟合到这些轮廓。问题是当形状重叠时,轮廓会混淆。

我考虑以下算法:检测所有特征点:并在它们上面放置白点。我得到了类似的东西,其中每个数字都分为不同的部分: 在此输入图像描述 然后我可以尝试使用一些信息链接这些部分,例如复杂度值(我将曲线 approxPolyDP 拟合到轮廓并读取它有多少个部分)。但这开始变得非常困难。另一个想法是尝试连接轮廓的所有排列并尝试使图形适合它们。将输出最好的编译。

有什么想法如何创建简单但优雅的解决方案吗?

java opencv image-recognition shapes contour

7
推荐指数
1
解决办法
3446
查看次数

如何在 SwiftUI 中组合形状?

我需要从几个其他形状创建一个形状,理想情况下,我会在最后得到一个单一的形状结构,它会像 ZStack 那样堆叠两个形状。我在任何地方都没有注意到这个明显的实现,所以也许有人对如何实现它有一些想法?

这就是我想要的:

struct CustomShape: Shape {
    func path(in rect: CGRect) -> Path {
        // Add shapes here???? For example, combine Rectangle with Circle?
    }
}
Run Code Online (Sandbox Code Playgroud)

path shapes swiftui

7
推荐指数
1
解决办法
3879
查看次数

仅底角或顶角为圆角的 ImageView

我对这个问题有答案,但我花了太多时间寻找它。这就是我创建这个问题的原因,这样对其他人来说会更容易。

您不能像通常的视图一样使用形状 @drawable 来圆化图像角。这就是为什么您需要对代码内的图像进行一些更改。

android shapes rounded-corners drawable imageview

7
推荐指数
1
解决办法
4428
查看次数

在c ++中绘制形状的简单方法?

那里有任何绘图库真的很简单吗?我的字面意思是"draw_circle(screen,x,y,r,color)"之类的函数或类似的东西.

我已经看过SDL,但它不支持我想要的东西 - 如果可能的话,我想要一些非常容易使用的东西.

c++ geometry drawing shapes

6
推荐指数
1
解决办法
2818
查看次数

DL Keras 框架图像输入的 3D-tensor 和 4D-tensor 的区别

按照惯例,图像张量始终是 3D 的:一维为其height,一维为其,width第三维为其color channel。它的形状看起来像(height, width, color)

例如,一批 128 张大小为 256x256 的彩色图像可以存储在 shape 的 4D 张量中(128, 256, 256, 3)。颜色通道在这里表示 RGB 颜色。另一个示例,批量 128 个灰度图像存储在形状为 的 4D 张量中(128, 256, 256, 1)。颜色可以编码为 8 位整数。

对于第二个示例,最后一个维度是一个仅包含一个元素的向量。然后可以使用形状的 3D 张量(128, 256, 256,)代替。

我的问题来了:我想知道使用 3D 张量而不是 4D 张量作为使用 keras 的深度学习框架的训练输入之间是否有区别。

编辑:我的输入层是一个 conv2D

python image shapes keras tensor

6
推荐指数
1
解决办法
1736
查看次数

AttributeError: 'ShuffleDataset' 对象没有属性 'output_shapes' - 在遵循 TF 教程时

我一直在学习他们网站上的 TensorFlow 教程。在使用 RNN 进行文本分类练习中,我遇到了这个错误。我尝试了一些更改,并且还复制并粘贴了代码以收到相同的错误。有什么建议?谢谢

我试过在分配了 padded_batch 后改组数据集。我可以从文档中看到,Shuffle 没有属性 (output_shapes)。我想不出另一种方法。

BUFFER_SIZE = 10000
BATCH_SIZE = 64

train_dataset = train_dataset.shuffle(BUFFER_SIZE)
train_dataset = train_dataset.padded_batch(BATCH_SIZE, train_dataset.output_shapes)

test_dataset = test_dataset.padded_batch(BATCH_SIZE, test_dataset.output_shapes)
Run Code Online (Sandbox Code Playgroud)

收到此错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-8a10fa01af19> in <module>()
      3 
      4 train_dataset = train_dataset.shuffle(BUFFER_SIZE)
----> 5 train_dataset = train_dataset.padded_batch(BATCH_SIZE, train_dataset.output_shapes)
      6 
      7 test_dataset = test_dataset.padded_batch(BATCH_SIZE, test_dataset.output_shapes)

AttributeError: 'ShuffleDataset' object has no attribute 'output_shapes'
Run Code Online (Sandbox Code Playgroud)

python shapes output tensorflow

6
推荐指数
1
解决办法
3815
查看次数

检测openCV中的圆圈

我在为 HoughCircles 函数选择正确的参数时遇到问题。我尝试从视频中检测圆圈。这个圆圈是我做的,尺寸几乎一样。问题是相机在移动。

当我更改 maxRadius 时,它仍然以某种方式检测到更大的圆圈(见右图)。我也尝试更改 param1, param2 但仍然没有成功。 左侧原始图片,右侧 - 模糊和检测到的圆圈后

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  blurred = cv2.medianBlur(gray, 25)#cv2.bilateralFilter(gray,10,50,50)


  minDist = 100
  param1 = 500
  param2 = 200#smaller value-> more false circles
  minRadius = 5
  maxRadius = 10
  circles = cv2.HoughCircles(blurred, cv2.HOUGH_GRADIENT, 1, minDist, param1, param2, minRadius, maxRadius)

  if circles is not None:
    circles = np.uint16(np.around(circles))
    for i in circles[0,:]:
        cv2.circle(blurred,(i[0], i[1]), i[2], (0, 255, 0), 2) 
Run Code Online (Sandbox Code Playgroud)

也许我使用了错误的功能?

python geometry opencv shapes detection

6
推荐指数
2
解决办法
6616
查看次数

将一个形状良好的多边形切割成N个大小相等的多边形

我有一个匀称的多边形。我想将这些多边形切割成n 个多边形,它们都有或多或少相同大小的区域。大小相同是最好的,但近似值也可以。

我尝试使用此处描述的两种方法,这两种方法都是朝着正确方向迈出的一步,而不是我所需要的。两者都不允许目标n

我研究了voronoi,我对它很不熟悉。此分析给出的结果形状是理想的,但它需要点,而不是形状作为输入。

python shapes

6
推荐指数
1
解决办法
5476
查看次数

在同一路径上创建不同的描边样式 - SwiftUI(基于 0-1 之间的值,如渐变)

在 SwiftUI Shapes 中,我们可以使用渐变来制作不同的颜色描边。

例如-

@ViewBuilder
func lineWithSecondColorStyleFromPositionN() -> some View {
    let n = 0.5
    GeometryReader { gr in
        Path { path in
            path.move(to: CGPoint(x: 0, y: 0))
            path.addLine(to: CGPoint(x: gr.size.width, y: gr.size.height))
        }
        .stroke(
            LinearGradient(stops: [
                Gradient.Stop(color: .red, location: 0),
                Gradient.Stop(color: .red, location: n),
                Gradient.Stop(color: .blue, location: n),
                Gradient.Stop(color: .blue, location: 1)
            ], startPoint: .top, endPoint: .bottom),
            style: StrokeStyle(lineWidth: 10, lineCap: .butt)
        )
    }
    .frame(height: 200)
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

是否可以通过任何方式对笔划样式执行相同的操作?

创建这样的东西 -

在此输入图像描述

笔划样式 1(实线)从 0 到n,

描边样式 2(虚线)从 …

shapes ios swift swiftui swiftui-environment

6
推荐指数
1
解决办法
961
查看次数

如何在 flutter 中制作自定义气泡形状?

我正在尝试创建一个两边都有三角形形状的自定义工具提示。我创建了一个气泡,但如何在不使用任何库的情况下添加三角形?

class SdToolTip extends StatelessWidget {
  final Widget child;
  final String message;

  const SdToolTip({
    required this.message,
    required this.child,
  });

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Tooltip(
        child: child,
        message: message,
        padding: const EdgeInsets.all(8),
        decoration: BoxDecoration(
            color: Colors.blueAccent.withOpacity(0.6),
            borderRadius: BorderRadius.circular(22)),
        textStyle: const TextStyle(
            fontSize: 15, fontStyle: FontStyle.italic, color: Colors.white),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

tooltip shapes dart flutter

6
推荐指数
1
解决办法
8565
查看次数