Все привет! Не получается заменить горизонтальные линии в изображении такими же горизонтальными линиями, но смещенными, т.е замазать горизонтальную линию чтобы потом можно было легче распознать цифры.
Ругается на "ValueError: could not broadcast input array from shape (47,16,3) into shape (51,20,3)"
Правильно ли я понимаю, что он ругается на то что я пытаюсь во фрагмент который имеет определенные размеры вставить объект который больше по размерам или нет? Что не правильно?
картинка в примере
import numpy as np
import cv2
image = cv2.imread('crop4.jpg',1)
def summa(item):
item=np.add(item,10)
item = np.intc(item)
if item>=100:
item=np.intc(100)
elif item<=0:
item=np.intc(0)
return item
cv2.imshow('Lines1', image)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edged = cv2.Canny(gray, 160, 250)
lines=cv2.HoughLinesP(edged,1,np.pi/180,30,minLineLength=10, maxLineGap=10)
lin_horiz=[]
lin_vert=[]
for i in range(len(lines)):
lin=lines[i][0]
if lin[0]==lin[2]:
lin_vert.append(lin)
elif lin[1]==lin[3]:
lin_horiz.append(lin)
for i, lin in enumerate(lin_horiz):
#Линии которые надо заменить
cv2.line(image, (lin[0], lin[1]), (lin[2], lin[3]), (0, 0, 255), 1)
#Замена линии
img[lin[0]:summa(lin[1]), lin[2]:summa(lin[3])]=img[lin[0]:lin[1], lin[2]:lin[3]]
cv2.imshow("change_44444", image)
cv2.imshow("change_line", img)