【问题标题】:2D Curve estimation from an image / Seam removal python/scipy来自图像的 2D 曲线估计/接缝去除 python/scipy
【发布时间】:2018-03-10 23:16:21
【问题描述】:

我正在从拼接图像中去除接缝。我已经通过此链接https://biop.epfl.ch/pdf/ASSEMBLY_poster.pdf 并尝试实施。如何从 RGB 图像中估计拟合抛物线,需要从原始图像中减去。我知道我可以使用 scipy 中的 curve_fit,但我不知道如何传递我的 xdata 和 ydata。到目前为止我所知道的,xdata 将包含图像坐标 (i,j) 而 ydata 将包含强度级别,我很困惑。 我在这里附上我的代码,检查一下。

import cv2
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

im1=cv2.imread("images/images/image_495.jpg",0)
value=[]
for i in range(im1.shape[0]):
    for j in range(im1.shape[1]):
        value.append(im1[i][j])
x=list(range(im1.shape[0]))
y=list(range(im1.shape[1]))
def fun(data,a,b,c,d):
    x,y = data
    f=a*(x**2)+b*x+d*(y**2)+e*y+c
    return f 
z=np.array(value)
popt,pcov=curve_fit(fun,np.hstack((x,y)),z,p0=[1,1,1,1])

如何传递图像坐标的 x,y 数据,len(x) 和 len(y) 也是不同的。

【问题讨论】:

  • 在这里显示您的代码/工作。
  • 输入图像/数据在哪里?你在问我们对你没有展示的东西的估计,那么有人怎么能帮助你呢?发布图像 somwere 并在此处传递链接,以便我们将其添加到您的问题中(因为您没有足够的代表)。你试过什么,你在哪里卡住了?你做了什么样的拟合(基于什么方法)......查看一些相关的QA:Ellipse matchingfind upper and lower arcellipse bbox
  • 我使用的是 RGB .jpg 格式的图片。我正在研究用于医疗目的的整个幻灯片扫描仪。拍摄组织图像,缝合后我必须去除接缝并平衡每个瓷砖之间的亮度。
  • @shivamchaubey 这一切都很好,但实际上没有看到任何示例输入图像,没有人可以帮助你。
  • 我卡在传递 xdata 请参考代码@Spektre

标签: python opencv image-processing scipy


【解决方案1】:

您必须执行这些步骤:

  1. 计算图像的平均值
  2. 为每个像素计算 px 值 - 平均值
  3. 您将获得一组 3d 点(x、y、强度)
  4. 将抛物面拟合到该数据Paraboloid (3D parabola) surface fitting python
  5. 执行减法。

【讨论】:

  • 这里的 x,y 是什么?如果它的坐标比 len(x) 和 len(y) 不同,因为图像不是正方形的,所以 np.vstack((x,y)) 不起作用。什么必须存储在 x,y 中。我很困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-22
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 2016-08-29
相关资源
最近更新 更多