Nanが去ったと書いてあり、カメラを開けません。しかし、right_lineを表示したい場合は、カメラのみが開きます。
カメラを実行して画像のleft_lineをレンダリングするにはどうすればよいですか?
![イメージ説明]![]
> import cv2 > import numpy as np > > def make_coordinates(image, line_parameters): > slope, intercept = line_parameters > y1 = image.shape[0] > y2 = int(y1*(3/5)) > x1 = int((y1 - intercept)/slope) > x2 = int((y2 - intercept)/slope) > return np.array([x1, y1, x2, y2]) > > def average_slope_intercept(image, lines): > left_fit = [] > right_fit = [] > if lines is not None: > for line in lines: > x1, y1, x2, y2 = line.reshape(4) > parameters = np.polyfit((x1, x2), (y1, y2), 1) > slope = parameters[0] > intercept = parameters[1] > if slope < 0: > left_fit.append((slope, intercept)) > else: > right_fit.append((slope, intercept)) > left_fit_average = np.average(left_fit, axis=0) > right_fit_average = np.average(right_fit, axis=0) > print(left_fit_average, 'left') > print(right_fit_average, 'right') > left_line = make_coordinates(image, left_fit_average) > right_line = make_coordinates(image, right_fit_average) > return np.array([left_line,right_line]) > > def canny(image): > > gray = cv2.cvtColor( image, cv2.COLOR_RGB2GRAY) > blur = cv2.GaussianBlur(gray,(5,5),0) > canny = cv2.Canny(blur, 50, 150) > return canny > > def display_lines(image,lines): > line_image = np.zeros_like(image) > if lines is not None: > for x1, y1, x2, y2 in lines: > cv2.line(line_image,(x1, y1), (x2, y2), (255,0,0),10) > return line_image > > def region_of_interest(image): > > polygons = np.array([ > [(0,1092),(1583,1092),(890,40)] > ]) > mask = np.zeros_like(image) > cv2.fillPoly(mask,polygons,255) > masked_image = cv2.bitwise_and(image,mask) > return masked_image > > cap = cv2.VideoCapture(0) > while True: > _, frame = cap.read() > canny_image = canny(frame) > cropped_canny = region_of_interest(canny_image) > lines = cv2.HoughLinesP(cropped_canny, 2, np.pi / 180, 100, np.array([]), minLineLength=40, maxLineGap=5) > averaged_lines = average_slope_intercept(frame, lines) > line_image = display_lines(frame, averaged_lines) > combo_image = cv2.addWeighted(frame, 0.8, line_image, 1, 1) > cv2.imshow("result", combo_image) > if cv2.waitKey(1) & 0xFF == ord('q'): > break > cap.release() > cv2.destroyAllWindows()
### 前提・実現したいこと ここに質問の内容を詳しく書いてください。 (例)PHP(CakePHP)で●●なシステムを作っています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 ### 発生している問題・エラーメッセージ
エラーメッセージ
### 該当のソースコード ```ここに言語名を入力 ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/23 11:37 編集
2021/11/23 08:50
2021/11/26 09:11