мы начали с отсканированных изображений правильных нарисованных диаграмм логической схемы, мы смогли отделить логические ворота от отсканированного изображения схемы, но мы не смогли обнаружить и как продолжить дальше, для этого мы использовали python open cv, наш код вышеперечисленногоКак обнаружить логические ворота от отсканированных изображений ручных схем?
import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('logic.png',0)
ret,img2 = cv2.threshold(img,127,255,cv2.THRESH_BINARY_INV) # converting the image into binary image.
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(100,3)) # kernel to detect vertical lines
vertical = cv2.morphologyEx(img2, cv2.MORPH_OPEN, kernel) # applying morphological opening operation to detect vertical lines
vertical = cv2.dilate(vertical,kernel,iterations = 1) #dilate the vertical lines obtained
kernel2 = cv2.getStructuringElement(cv2.MORPH_RECT,(3,100)) # kernel to detect horizontal lines
horizontal = cv2.morphologyEx(img2, cv2.MORPH_OPEN, kernel2) # applying morphological opening operation to detect horizontal lines
horizontal = cv2.dilate(horizontal,kernel2,iterations = 1) #dilate the horizontal lines obtained
cv2.imshow('d',vertical) # show the vertical imag
cv2.imshow('b',horizontal) # show the horizontal image
img = img2 -horizontal - vertical # subtracting horizontal and vertical lines from original image
cv2.imwrite('horizontal.png',horizontal)
cv2.imwrite('vertical.png',vertical)
cv2.imwrite('result.png',img)
cv2.imshow('last',img) # show the resulted image after subtraction
kerne = np.ones((3,3),np.uint8) # kernel to remove the noise from the last image
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kerne) # applying opening morphological operation to remove the noise from the image
cv2.imshow('opening',opening) # show the resulted image after removing noise
cv2.imwrite('noise_removal.png',opening)
cv2.waitKey(0)
Проверить результат ниже, и посоветовать, как действовать дальше, чтобы обнаружить логические элементы из сканированных изображений рисованных схем?
В результате код ниже:
1) входного изображения:
2) Выход изображения (код результата):
Результаты изображения не отображаются по ссылке –
, вы хотите обнаружить только тип ворот и поместить их в массив или вы хотите создать граф (дерево) посредством анализа изображения? –
@ Ссылка изображения изображения Anatoly теперь исправлена. Мы хотим сначала обнаружить ворота, а затем проанализировать выражение для схемы. –