Как выполнить модульное тестирование на изображении в качестве входа и выхода в Python? - PullRequest
0 голосов
/ 02 июня 2019

Я выполняю модульное тестирование при обнаружении объекта код (принятый ответ) в Python.Я знаю, что в модульном тестировании мы в основном вводим параметры теста в функции, которые мы определили в нашей программе, и вводим ожидаемый результат.Если ожидаемый результат будет выведен, мы получим ОК, в противном случае мы получим ошибку.

Так что моя проблема в том, что мой вход это Изображение , а мой output также является изображением (т. Е. объект, обнаруженный на изображении ), и позже результат представляется с использованием гистограммы и гистограммы с ползунком. Как мне выполнить модульное тестирование на таких данных?

Пока что это то, что я пробовал (этот код сохраняется как cirCode)

from unittest import TestCase

import unittest
from unittest import TestCase
import cirCode

class TestFind_circles(TestCase):

        def setUp(self):
            pass

        def tearDown(self):
            pass

        #def test_circle(self):
         #   self.fail()

        def test_find_circles(self):

            Negative_circles, Positive_circles, out_filepath, circles, threshold = cirCode.find_circles('blobs.jpg')

            self.assertEqual(Negative_circles, 20)
            self.assertEqual(Positive_circles, 8)

if __name__ == '__main__':
    unittest.main()

Теперь я не знаю, как проверить функцию def circle .Кроме того, я не уверен, что это правильный способ проверки функции find_circles .

У вас, ребята, есть идея лучше провести модульное тестирование по этому коду , а также как я могу продолжить модульное тестирование по функции circle ?

1 Ответ

0 голосов
/ 02 июня 2019

Не уверен, что вы спрашиваете, я предполагаю, что вы запрашиваете метод модульного тестирования для функции и переменных opencv.

Как насчет следующего тестового образца на pyc для opencv? Они сделали похожую работу, которую вы пытаетесь сделать уже. У них есть десятки образцов для тестирования.

https://github.com/opencv/opencv/tree/master/modules/python/test

1008 * например *

import cv2 as cv
import numpy as np
import sys
from numpy import pi, sin, cos

from tests_common import NewOpenCVTests

def circleApproximation(circle):

    nPoints = 30
    dPhi = 2*pi / nPoints
    contour = []
    for i in range(nPoints):
        contour.append(([circle[0] + circle[2]*cos(i*dPhi),
            circle[1] + circle[2]*sin(i*dPhi)]))

    return np.array(contour).astype(int)
...