извлечение графика из печатного ЭКГ - PullRequest
0 голосов
/ 18 мая 2018

Я нашел один такой вопрос в стеке, но он не получил ответа, плюс мое изображение другое.

У меня есть это изображение, которое вы видите ниже.

enter image description here

Я хочу извлечь график, который находится на изображении.Я перепробовал очень много способов его извлечь.Thresholding, похоже, не работает, так как значения rgb довольно близки, особенно на пике графиков.Я попытался использовать градиенты, чтобы обнаружить поток на изображении, но это также не удалось.Я попытался объединить различные цветовые пространства (HLS, YUV, LAB), у него был некоторый вывод, но он удалял некоторые части графика.Я также попытался создать матрицу маски 8X8 или меньше, чтобы получить среднее значение пикселей и удалить все, что ниже этого.Также создание медианной фильтрации.Последние два в сочетании с некоторыми из ранее упомянутых методов помогли, но они убирали пики, так как разница самая низкая.Ты знаешь какие-нибудь лучшие способы, которые могут мне помочь?

Примечание: Я использую Python

1 Ответ

0 голосов
/ 18 мая 2018

U может поиграть с порогом вашего изображения (HSV)

import cv2
import numpy as np
from PIL import Image
import PIL.ImageOps   

img=cv2.imread("ekg.jpg")
BLACK_MIN = np.array([0, 0, 0],np.uint8)
BLACK_MAX = np.array([255, 255, 80],np.uint8)
hsv_img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
frame_threshed = cv2.inRange(hsv_img, BLACK_MIN, BLACK_MAX)
cv2.imwrite('threshed.jpg', frame_threshed)
image = Image.open('threshed.jpg')
inverted_image = PIL.ImageOps.invert(image)
inverted_image.save('invert.jpg')
img2=cv2.imread("invert.jpg")
cv2.imshow('image1', img2)

enter image description here

...