Экспорт от SQL Server до Excel с заголовками столбцов?

Это небольшое изображение: p

Вот как я подошел к вашей проблеме: сначала я обнаружил края на изображении. Затем я использовал морфологическое закрытие , чтобы соединить линии, которые находятся близко друг к другу. Это очень хорошо работает с внешними краями, контуром формы. Тогда контур этой фигуры может быть обнаружен (cv2.RETR_EXTERNAL возвращает только самый внешний контур). Из-за некоторого шума я добавил порог размера, а оставшийся контур нарисован заполненным на новом изображении.

Я добавил вторую опцию, которая более эффективна, но может не работать для остальной части вашего проекта, потому что она менее гибкая для других изображений. Здесь берутся края и делается большое морфологическое закрытие, которое объединяет всю форму. Чтобы удалить шум, выполняется меньшее морфологическое отверстие. Как вы можете видеть ниже, результаты почти идентичны, хотя разница может быть больше для других изображений.

Последнее замечание: если эта маска слишком грубая, вы можете использовать маску, чтобы вырезать соответствующую область вашего изображения, и использовать ее для создания лучшей маски.

Результат:

enter image description here

Код:

import numpy as np 
import cv2

# load image 
image = cv2.imread("image.png")
# detect edges in image
edges = cv2.Canny(image,100,100)


#option 1: use contours
# solidify / join edges
kernel =  np.ones((10,10),np.uint8)
mask = cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel)
# create black image with the size of image
result = np.zeros(image.shape[:2])
# detect contours in the mask (outer edges only)
im, contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# draw contour 
for cnt in contours:
    if cv2.contourArea(cnt) > 100:
        # draw filled contour in white on result
        cv2.drawContours(result, [cnt], 0, (255), -1)
        # draw outline of contour in red on original image
        cv2.drawContours(image, [cnt], 0, (0,0,255), 2)


#option 2: morphology only
# solidify / join edges
kernel2 =  np.ones((20,20),np.uint8)
mask2 = cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel2)
# remove noise 
kernel3 =  np.ones((5,5),np.uint8)
result2 = cv2.morphologyEx(mask2, cv2.MORPH_OPEN, kernel3)


# show image and results
cv2.imshow("image", image)
cv2.imshow("edges", edges)
cv2.imshow("Result_option1", result)
cv2.imshow("Result_option2", result2)
# release recourses
cv2.waitKey(0)
cv2.destroyAllWindows()

13
задан Andre Silva 27 October 2017 в 16:16
поделиться

2 ответа

Я обычно делаю это просто щелчком левый верхний угол в сетке результатов, копии, и затем вставляю в Excel. Существует одна выгода, необходимо войти в опции-> результаты запроса-> SQL Server-> результаты к сетке (или текст, если Вы хотите сохранить в файл для импорта в Excel), и включите, включают заголовки столбцов при копировании или сохранении результатов. Я нахожу, что это работает отлично.

14
ответ дан 1 December 2019 в 17:51
поделиться

Это - значение по умолчанию при использовании мастера Импорта/Экспорта. Можно также сохранить это к пакету SSIS, если Вы хотите настроить экспорт.

1
ответ дан 1 December 2019 в 17:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: