from math import sqrt, sin, cos, atan2, pi
from matplotlib import pyplot as plt
import numpy as np
import cv2
img = cv2.imread("weerstand1.jpg", 1) # 1=colour image
lines = 20
points = 10
p1 = (278, 395)
p2 = (290, 210)
cv2.line(img, p1, p2, (0,0,255), 10)
wdx = p1[0] - p2[0]
wdy = p1[1] - p2[1]
klen = sqrt(wdx * wdx + wdy * wdy) / 8
khoek = atan2(wdy, wdx) + pi / 2
kdx = klen * cos(khoek)
kdy = klen * sin(khoek)
wxs = np.linspace(p1[0], p2[0], num=lines)
wys = np.linspace(p1[1], p2[1], num=lines)
for i in range(lines):
p3 = (round(wxs[i] + kdx), round(wys[i] + kdy))
p4 = (round(wxs[i] - kdx), round(wys[i] - kdy))
cv2.line(img, p3, p4, (0,255,255), 3)
kxs = np.linspace(p3[0], p4[0], num=points)
kys = np.linspace(p3[1], p4[1], num=points)
mean = np.zeros(3, dtype=np.float64)
for j in range(points):
kx = round(kxs[j])
ky = round(kys[j])
mean += img[ky, kx]
mean /= points
print(mean)
dpi = 96
w = img.shape[1]
h = img.shape[0]
plt.figure(figsize=(w/dpi,h/dpi),dpi=dpi)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.title("Weerstand 1")
plt.show()