LoginSignup
yutapuu
@yutapuu

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

直線の座標について

Q&AClosed

opencvを用いて直線検出ができました。次は一枚目の画像の線の中で一番上にあるものの始点と終点の座標、また二枚目の画像の中で一番下にある線の始点と終点の座標を求めたいです。どのように求めればよろしいでしょうか。以下に画像と、コードを記述します。
コードは一枚目の画像を得るとき使ったものです。

upper.jpg
dst.jpg

該当するソースコード

import cv2
import numpy as np
import os
os.chdir("C:\\suzuki")
img = cv2.imread("ND03001.jpg")
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.imwrite("img_hsv.jpg", img2)
img_hsv_gray = cv2.imread("img_hsv.jpg", 0)
cv2.imwrite("hsv_gray.jpg", img_hsv_gray)
img3 = img2.copy()
img_edge = cv2.Canny(img_hsv_gray, 100, 100)
lines = cv2.HoughLines(img_edge, 1, np.pi/180, 120, 140, 100,)

rows, cols = img3.shape[:2]
for rho, theta in lines[:, 0]:
    a = np.cos(theta)
    b = np.sin(theta)
    x0 = a*rho
    y0 = b*rho
    cv2.line(img3,
            (int(x0 - cols*(b)), int(y0 + cols*(a))),
            (int(x0 + cols*(b)), int(y0 - cols*(a))),
            (0, 0, 255), 2)
cv2.imwrite("uppertest.jpg", img3)

0

1Answer

Comments

  1. @yutapuu

    Questioner
    なるほど、それをprint()で表示すると値がそれぞれ一つずつしか出てこないのですが、線の数だけ始点と終点の値は出てこないのですか?でてきた値がどの線の始点と終点を表しているのかがわからないです。
  2. @yutapuu

    Questioner
    初歩的な質問内容かもしれないですが教えていただけると助かります。

Your answer might help someone💌