为了账号安全,请及时绑定邮箱和手机立即绑定

程序不打印结果

程序不打印结果

翻阅古今 2022-06-22 19:48:49
现在,我正在使用以下程序,但我无法获得所需的图像时刻、质心等。代码:import cv2import numpyfrom matplotlib.pyplot import imreadfrom numpy import mgrid, sumimage = imread('imagemoment.png')def moments2e(image):    assert len(image.shape) == 2  # only for grayscale images    x, y = mgrid[:image.shape[0], :image.shape[1]]    moments = {}    moments['mean_x'] = sum(x * image) / sum(image)    moments['mean_y'] = sum(y * image) / sum(image)    # raw or spatial moments    moments['m00'] = sum(image)    moments['m01'] = sum(x * image)    moments['m10'] = sum(y * image)    moments['m11'] = sum(y * x * image)    moments['m02'] = sum(x ** 2 * image)    moments['m20'] = sum(y ** 2 * image)    moments['m12'] = sum(x * y ** 2 * image)    moments['m21'] = sum(x ** 2 * y * image)    moments['m03'] = sum(x ** 3 * image)    moments['m30'] = sum(y ** 3 * image)    # central moments    moments['mu01']= sum((y-moments['mean_y'])*image) # should be 0    moments['mu10']= sum((x-moments['mean_x'])*image) # should be 0    moments['mu11'] = sum((x - moments['mean_x']) * (y - moments['mean_y']) * image)    moments['mu02'] = sum((y - moments['mean_y']) ** 2 * image)  # variance    moments['mu20'] = sum((x - moments['mean_x']) ** 2 * image)  # variance    moments['mu12'] = sum((x - moments['mean_x']) * (y - moments['mean_y']) ** 2 * image)    moments['mu21'] = sum((x - moments['mean_x']) ** 2 * (y - moments['mean_y']) * image)    moments['mu03'] = sum((y - moments['mean_y']) ** 3 * image)    moments['mu30'] = sum((x - moments['mean_x']) ** 3 * image)    # opencv versions    # moments['mu02'] = sum(image*(x-m01/m00)**2)    # moments['mu02'] = sum(image*(x-y)**2)    # wiki variations    # moments['mu02'] = m20 - mean_y*m10    # moments['mu20'] = m02 - mean_x*m01你能帮我解决这个问题吗?非常感谢。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

乍一看,我看到的一个问题是,您已经定义了函数moments2e(image)但没有调用它。您需要moments2e(image)在函数定义之外调用该函数。


import cv2

import numpy

from matplotlib.pyplot import imread

from numpy import mgrid, sum


image = imread('imagemoment.png')


def moments2e(image):

    assert len(image.shape) == 2  # only for grayscale images

    x, y = mgrid[:image.shape[0], :image.shape[1]]

    .

    .

    .

    return moments

moments = moments2e(image)

print(moments)


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信