• 1399/04/20

قسمتی از کد :

در قسمتی از کد

که اومدیم ارای مثلث رو دراوردیم چرا باید حتما ارای ما داخل ۳ [] باشه

  • 1399/04/20
  • ساعت 14:50

سلام

وقت بخیر 

اگه خوب متوجه منظورتون شده باشم. منظورتون بخش مربوط به کراپ کردن region of interest بوده، خوب ما یه ارایه سه تایی ایجاد کردیم که مختصات هر ضلع مثلث را مشخص کنیم.

اگر سوالتون مسئله ی دیگری هست لطفا مشخص تر بفرمایید که مروط به چه بخش یا قسمتی می باشد.

با تشکر

 


  • 1399/04/20
  • ساعت 15:16

ma umadim ye array tarif kardim ke 3 array dakhel ham bood

be in soorat: 

[[[ 200  704]

 [1100  704]

 [ 550  250]]]

khob ma agar in ro dakhel 1 array bezarim na dota error mide

be in shekl bashe array: 

[[ 200  704]

 [1100  704]

 [ 550  250]]

dalilesh chie va man ye soal ham darmored in code daram ke aslan nafahmidm chi be chie

aslan nemidoonam value ha i ke midim daqiqan chian 

masalan chra np.180

agar ax avaz she bazam hamine value 

hamintor 2 ke mikham bedoonam dorost fahmidam ya na 2

2 inja be mani 2 pixle hast doroste?

 

lines = cv2.HoughLinesP(cropped_image, 2, np.pi/180, 100, np.array([]), minLineLength=40, maxLineGap=5)

mamnoon az amoozesh khoobetun va mazerat mikham bekhater soal haye ziadam:)


  • 1399/04/20
  • ساعت 19:21

دوست عزیز ابتدا با سوال دوم شما شروع می کنیم.

ابتدا در بحث تئوری با مفهوم hough line و لزوم استفاده اش جهت پیدا کردن خطوط استفاده کردیم.

حالا دو نوع houghline   در کتابخانه Open Cv داریم:

Standard HoughLines

و

Probabilistics HoughLines 

که در اینجا ما با روش دوم کار می کنیم که دلیلشم هم اینه که خروجیه این تابع خطوط به صورت مختصات کارتزین هستن یعنی مختصات ورودی و خروجی رو می گیریم که اینجا به صورت lines تعریفش کردیم. حالا بریم سراغ argument های تابع HoughLinesP :

rho :رزولوشن پارامترها در مقیاس پیکسل معمولا برای مسائل مختلف از یک یا دو استفاده میشه. اینجا ما از 2 استفاده کردیم اما شما میتونید با تغییرش اثرش رو توی مسئله ببینید. با تغییر این مقدار در مقدار رادیان رزولوشن ما تغییر می کنه و در کل سایز پیکسل نباید اون قدری بزرگ بشه که دقت رو بیاره پایین و نه اونقدر کوچک باشه که مقدار محاسبات و زمان آن زیادی بالا بره

theta: رزولوشن پارامترها در جهت رادیان(چون اینجا به جای کارتزین توی سیستم قطبی کار می کنیم)

توی تصویر زیر میتونید به وضوح با دو پارامتر رادیان و رو و اثرشون روی سایز پیکسل ها و در نهایت رزولوشن بهتر آشنا بشید:

 

threshold: حداقل نقاطی که برای تشخیص یک خط باید همدیگرو قطع کنند.

minLinLength: حداقل تعداد نقاطی که برای رسم یک خط نیاز هستند .

maxLineGap: بیشترین فاصله میان دو نقطه مجزا در یک خط برای اینکه به عنوان خط در نظر گرفته شوند.

cv2.HoughLinesP(image,rho, theta, threshold, np.array ([ ]), minLineLength=xx, maxLineGap=xx)

 

در خصوص سوال اولتون هم باید بگم مختصات هر ضلع مثلث توی پرانتز آورده شده است نه براکت.

 

برای رسم یک مثلث با استفاده از پایتون شما نیاز دارید که ایتدا مختصات هر ضلع را مشخص کنید و بعد اون ها را توی یه آرایه بیارید. اگه نیاز به یادآوری در بخش آرایه ها دارید میتونید بخش رو مجددا مشاهده کنید.

به عنوان مثال برای تعریف یک مثلث اینگونه عمل می کنیم:

numpy

import numpy as np p1 = (10, 20)p2 = (21, 15)p3 = (33, 1) tri3d = np.array([p1, p2, p3])

امیدوارم که پاسخ سوالاتتون رو به صورت واضح گرفته باشید.

بازم اگه نکته ای گنگ بود میتونید مطرحش کنید

موفق باشید


logo-samandehi