我试图沿着下图中的曲线添加切线,就像第二张图片中的红线。然后我想使用切线找到切线(绿线)的 90 度法线。目标是找到不同位置的两条白线之间的距离。我使用 Python 和 OpenCV,如果有人对我如何做到这一点有任何建议,我将不胜感激。代码示例会很棒。
我有一个像这样的坐标数组:
array = [[1,6],[2,6],[3,8],[4,10],[5,6],[5,7],[18,6],[19,5],[17,9],[10,5]]
Run Code Online (Sandbox Code Playgroud)
我想将数组拆分为6. 和7。协调,([5,7],[18,6])因为那里的值存在差距X。我想得到两个单独的数组,arr1和arr2,其中arr1是分割之前的值,arr2是分割之后的值。
我想说,如果下一个X值大于 的差值10,它将附加到arr2, else arr1,如下所示:
arr1 = []
arr2 = []
for [x,y] in array:
if next(x) > 10:
arr2.append(x,y)
else:
arr1.append(x,y)
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
我试图找到图像特定区域的轮廓.是否可以只显示ROI内部的轮廓而不是图像其余部分的轮廓?我在另一篇类似的帖子中读到我应该使用面具,但我不认为我正确使用它.我是openCV和Python的新手,所以任何帮助都很受欢迎.
import numpy as np
import cv2
cap = cv2.VideoCapture('size4.avi')
x, y, w, h= 150, 50, 400 ,350
roi = (x, y, w, h)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 127, 255, 0)
im2, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
roi = cv2.rectangle(frame, (x,y), (x+w, y+h), (0,0,255), 2)
mask = np.zeros(roi.shape,np.uint8)
cv2.drawContours(mask, contours, -1, (0,255,0), 3)
cv2.imshow('img', frame)
Run Code Online (Sandbox Code Playgroud) 我有一维一维的数组:
int[] array = { 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 30, 31, 32,33, 34,40,41,42,43, 44};
Run Code Online (Sandbox Code Playgroud)
我想将这个1D数组划分为4行5列的2D数组,其中前5个值进入第1行,后5个进入第2行,依此类推.最终结果应如下所示:
array2D:
[[10, 11, 12, 13, 14]
[20, 21, 22, 23, 24]
[30, 31, 32, 33, 34]
[40, 41, 42, 43, 44]]
Run Code Online (Sandbox Code Playgroud)
实际上,阵列将更长(可能超过100行),但列数为5,行数可以分为5.我已经简化了例如.这是我到目前为止所尝试的:
int[] array = { 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 30, 31, 32,33, 34,40,41,42,43, 44};
int[,] array2D = new int[(array.Length/5),5];
int count_0 = 1;
int count_1 = 1;
int count_2 = 1;
int …Run Code Online (Sandbox Code Playgroud)