วิธีจัดการกับเฟรมวิดีโอใน simulink

ฉันกำลังทำงานกับวิดีโอใน simulink ดังที่เรารู้ว่าบล็อกไฟล์มัลติมีเดียจะอ่านทีละเฟรม ดังนั้นเมื่อฉันจะแนบมันเข้ากับบล็อกฟังก์ชัน Matlab ควรอ่านทีละเฟรมด้วยคำสั่ง imread หากฉันคลิกสองครั้งที่บล็อกฟังก์ชัน Matlab (ดังแสดงที่ http://tinypic.com/view.php?pic=dggujd&s=6) จากนั้นคุณจะเห็นว่าฉันต้องตั้งชื่อฟังก์ชันตามที่เขียนใน Matlab mfile พร้อมกับอินพุต ซึ่งในกรณีนี้คือวิดีโอ (ชื่อ convid.avi) ฉันกำลังอ่านทีละเฟรม แต่ฉันให้ทั้งวิดีโอเป็นอาร์กิวเมนต์ของฟังก์ชัน Matlab นี่เป็นปัญหาที่ฉันจะแก้ไขได้อย่างไร สิ่งที่ควรได้รับเป็นอาร์กิวเมนต์ในบล็อกฟังก์ชัน Matlab แทนที่จะเป็นทั้งวิดีโอ ฉันได้อัปโหลดโมเดลของฉันที่ http://tinypic.com/view.php?pic=55jggw&s=6. รหัสที่ฉันใช้สำหรับ vidfunc คือ:

function h=vidfunc(u)
a=imread(u); % read frame
BW = edge(a,'sobel'); %sobel edge detection
[H,thetaa,rhoo]=hough(BW); % Hough Transform
P = houghpeaks(H,6,'threshold',ceil(0.5*max(H(:))));
lines=houghlines(BW,thetaa,rhoo,P,'FillGap',15,'Minlength',15)
figure,imshow(I),hold on
for k = 1:length(lines) % Draw lines
 xy = [lines(k).point1; lines(k).point2];
 z(k)=lines(k).point2(2);
 plot(xy(:,1),xy(:,2),'LineWidth',1,'Color','green');
 end
 h=z(k)

person Shayan Ali    schedule 28.09.2012    source แหล่งที่มา


คำตอบ (1)


ดูเหมือนว่าเนื้องานที่ทำในโมเดล "Simulink" นี้จริง ๆ แล้วถูกดำเนินการโดยฟังก์ชัน MATLAB ของคุณ คำตอบของคำถามนี้จะขึ้นอยู่กับว่าฟังก์ชันนั้นกำลังทำอะไรอยู่เป็นส่วนใหญ่ โดยเฉพาะอย่างยิ่งอินพุตที่คาดหวังของ vidfunc คืออะไร และเอาต์พุตของฟังก์ชันนี้คืออะไร ฉันสงสัยว่าอาจจำเป็นต้องแก้ไขฟังก์ชันนี้เพื่อให้พอดีกับโมเดลของคุณ

ในการแก้ไขข้อบกพร่องโมเดลของคุณ คุณควรพิจารณาว่าสัญญาณเอาท์พุตจากแต่ละบล็อกคืออะไร ในแต่ละขั้นตอน บล็อก From Multimedia File ของคุณจะแสดงเฟรมภาพเดียว ซึ่งเป็นไปตาม doc ดูเหมือนว่าจะมีโครงสร้างเป็น

สัญญาณวิดีโอสี M-by-N-by-P ​​โดยที่ P คือจำนวนระนาบสี

เมื่อเคลื่อนไปทางท้ายน้ำ ต่อไปเราจะไปที่บล็อก Color Space Conversion ซึ่งในกรณีนี้ดูเหมือนว่ามีแนวโน้มว่าจะส่งออกกรอบภาพในรูปแบบของเมทริกซ์ M-by-N (โดยที่แต่ละองค์ประกอบของเมทริกซ์สอดคล้องกับความเข้มของภาพในขณะนั้น) พิกเซล)

ตอนนี้เรามาถึงส่วนที่น่าสนใจ -- บล็อก MATLAB Fcn ดังที่เราเพิ่งเห็น อินพุตของบล็อกนี้จะเป็นเมทริกซ์ M-by-N แทนเฟรมรูปภาพเดียว เมื่อคุณดูในกล่องโต้ตอบพารามิเตอร์สำหรับบล็อก MATLAB Fcn ข้อมูลเข้าของบล็อกนี้จะแสดงด้วยตัวแปร u ดังนั้น หากต้องการดำเนินการฟังก์ชัน vidfunc บนกรอบรูปภาพที่ป้อนเข้าบล็อกนี้ คุณเพียงแค่ป้อน vidfunc(u) สำหรับ ฟังก์ชัน MATLAB ของคุณ

ตอนนี้ จากอินพุตที่ไปที่บล็อก MATLAB Fcn และความจริงที่ว่าคุณมีบล็อก Video Viewer ที่เชื่อมต่อกับเอาต์พุต vidfunc ควรได้รับการจัดโครงสร้างให้ทำงานบนเฟรมรูปภาพเดียวเป็นอินพุตและเอาต์พุตเฟรมรูปภาพเดียวอีกเฟรมหนึ่ง หาก vidfunc ไม่ได้มีโครงสร้างในลักษณะนี้ คุณจะต้องแก้ไข (หรือเพียงนำฟังก์ชันเดิมไปใช้ใหม่โดยใช้บล็อก Simulink)

ดังที่กล่าวไว้ สมมติว่า vidfunc กำลังส่งคืนเมทริกซ์ M-by-N ซึ่งเป็นตัวแทนของเฟรมภาพที่ประมวลผล คุณจะต้องตั้งค่าพารามิเตอร์ ขนาดเอาต์พุต สำหรับบล็อก MATLAB Fcn ของคุณเป็น -1 เพื่อระบุว่าเอาต์พุตจะมีขนาดเดียวกันกับอินพุต นอกจากนี้ (ตามที่ระบุไว้ใน เอกสาร) คุณจะต้องแน่ใจว่า ยุบผลลัพธ์ 2 มิติเป็น 1 มิติ ไม่เลือก ไม่เช่นนั้นเอาต์พุตรูปภาพของคุณจะอยู่ในรูปแบบของเวกเตอร์ยาวหนึ่งตัว แทนที่จะเป็นเมทริกซ์ M-by-N

โดยมีเงื่อนไขว่า vidfunc มีโครงสร้างที่ถูกต้อง สิ่งนี้น่าจะแก้ปัญหาของคุณได้

หมายเหตุ: เพื่อให้ชีวิตของคุณง่ายขึ้นมาก ฉันขอแนะนำอย่างยิ่งให้แสดงประเภทข้อมูลสัญญาณและขนาดในโมเดล Simulink ของคุณ สิ่งนี้สามารถช่วยหลีกเลี่ยงความสับสนได้มาก เอกสารนี้อธิบายวิธีการดำเนินการอย่างชัดเจน นี้.

--อัปเดต--

หลังจากดูโค้ดของคุณแล้ว สิ่งนี้เป็นการยืนยันความสงสัยของฉันว่าอินพุต/เอาต์พุตของ vidfunc ไม่สอดคล้องกับสิ่งที่โมเดล Simulink ของคุณคาดหวัง วิธีที่คุณดำเนินการนั้นขึ้นอยู่กับข้อจำกัดในการออกแบบของคุณเองและสิ่งที่คุณต้องการจากระบบนี้ โดยพื้นฐานแล้ว โมเดล Simulink และฟังก์ชัน MATLAB ของคุณไม่ตรงกัน...อันไหนถูกต้อง ฉันจะให้ความคิดทั่วไปโดยอิงจากการเดาที่ดีที่สุดของฉันเกี่ยวกับสิ่งที่คุณกำลังมองหา

ขั้นแรก Simulink กำลังส่งรูปภาพ (ในรูปแบบของเมทริกซ์ M-by-N) ไปยัง vidfunc ซึ่งหมายความว่า vidfunc ไม่จำเป็นต้องโหลดรูปภาพที่จุดเริ่มต้นของโค้ดอีกต่อไป ดังนั้นฉันเชื่อว่าคุณสามารถอัปเดตโค้ดสองสามบรรทัดแรกให้เป็นดังนี้:

function h=vidfunc(a)
BW = edge(a,'sobel'); %sobel edge detection

เห็นว่าตอนนี้ vidfunc กำลังถ่ายภาพจริง (ไม่ใช่ชื่อไฟล์ที่มีภาพ) เป็นอินพุต โดยพื้นฐานแล้ว คุณกำลังลบบรรทัด a=imread(u); และกระโดดเข้าสู่การประมวลผล a

ปัญหาอื่นคือผลลัพธ์ของ vidfunc Simulink คาดหวังว่าเอาต์พุตจะเป็นรูปภาพ แต่ไม่ใช่ ฉันไม่แน่ใจ 100% ว่า h ควรเป็นอะไรในโค้ดนี้ (เมื่อฉันดูโค้ดของคุณครั้งแรก ฉันคิดว่าสิ่งเหล่านี้จัดการกับวัตถุบรรทัด แต่ดูเหมือนจะไม่เป็นเช่นนั้น) ดูเหมือนว่าจะเป็นพิกัด y ของจุดสิ้นสุดของหนึ่งในเส้นสำคัญ อย่างไรก็ตาม ไม่ใช่สิ่งที่โมเดล Simulink ของคุณคาดหวัง อันนี้ไม่ตรงไปตรงมาในการแก้ไข อาจเป็นไปได้ว่าคุณอาจลองใช้ getframe เพื่อดึงภาพจากพล็อตของ เส้นของคุณ

ฉันรู้สึกว่าคำแนะนำที่ดีที่สุดที่ฉันสามารถให้คุณได้คือ ยกเลิกฟังก์ชัน MATLAB และปรับใช้ทุกอย่างใน Simulink ฉันคิดว่านี่จะง่ายกว่าการพยายามให้ vidfunc เล่นกับโมเดลของคุณอย่างดี vidfunc จริงๆ แล้วไม่ได้มีโค้ดมากมายขนาดนั้น ดังนั้นจึงไม่น่าจะยากเกินไปสำหรับคุณ ข้อดีอีกประการหนึ่งคือ เมื่อสิ้นสุดกระบวนการนี้ คุณจะมีโมเดล Simulink ที่ดีซึ่งแสดงขั้นตอนการประมวลผลภาพทั้งหมดที่คุณกำลังดำเนินการอย่างชัดเจน

ฉันเชื่อว่าการประมวลผลภาพทั้งหมดที่คุณกำลังทำด้วยฟังก์ชัน MATLAB ก็สามารถทำได้ด้วยบล็อก Simulink (ดูส่วน Simulink Blocks ของ doc)

ขอให้โชคดี.

person grungetta    schedule 29.09.2012
comment
ท่านถ้าฉันเขียน 'u' เป็นอาร์กิวเมนต์อินพุตไปยัง vidfunc ฉันยังคงได้รับข้อผิดพลาด 'สตริงอินพุตต้องมีหนึ่งแถว' vidfunc ถ่ายครั้งละหนึ่งเฟรม จากนั้นก็แยกขอบเขตที่สนใจ จากนั้นฉันก็ใช้การตรวจจับขอบของ sobel และสุดท้ายก็ใช้ Hough Transform จริงๆ แล้วปัญหาคือบล็อกฟังก์ชัน Matlab ต้องการอาร์กิวเมนต์ในพารามิเตอร์ชื่อไฟล์ เช่น ในกรณีของรูปภาพ ฉันให้มันเป็น myfunction('a.jpg') ตอนนี้ฉันไม่สามารถเขียนมันเป็น myfunction('video.avi') ได้เพราะว่ามันใช้เวลา เฟรมไม่เต็มวิดีโอในครั้งเดียวจะเขียนได้อย่างไร? นี่คือปัญหาหรืออย่างอื่น - person Shayan Ali; 29.09.2012
comment
หากทำได้ ให้อัปเดตโพสต์ต้นฉบับของคุณเพื่อรวมโค้ด MATLAB ของคุณ จากคำอธิบายของคุณ ดูเหมือนว่าปัญหาของคุณจะเกิดขึ้นที่นั่น คุณบอกว่าสิ่งแรกที่ vidfunc ทำคือโหลดทีละภาพจากวิดีโอของคุณ อย่างไรก็ตาม vidfunc ไม่จำเป็นต้องดำเนินการขั้นตอนการโหลดไฟล์นี้อีกต่อไป เนื่องจากคุณกำลังโหลดวิดีโอใน Simulink และส่งผ่านเฟรมภาพเดียวไปยังฟังก์ชันโดยตรง ตามที่กล่าวไว้ในโพสต์ของฉัน คุณควรลบส่วนของ vidfunc ที่เกี่ยวข้องกับการโหลดไฟล์วิดีโอและการวนซ้ำผ่านเฟรม เพียงเก็บส่วนที่ประมวลผลเฟรมไว้ - person grungetta; 29.09.2012
comment
ท่านฉันได้อัปเดตโพสต์ของฉันโดยการใส่รหัส โปรดแนะนำฉันว่าฉันทำผิดตรงไหน - person Shayan Ali; 29.09.2012
comment
@ShayanAli - เมื่อดูโค้ดของคุณอย่างรวดเร็ว ฉันเห็นสองประเด็น 1) vidfunc ใช้ชื่อไฟล์รูปภาพเป็นอินพุต และ 2) ส่งคืนอาร์เรย์ของตัวจัดการไปยังวัตถุบรรทัด ขึ้นอยู่กับวิธีการจัดโครงสร้างโมเดล Simulink ของคุณ vidfunc จำเป็นต้องเขียนใหม่เพื่อนำรูปภาพจริงมาเป็นอินพุต (ในกรณีของคุณ นี่คือตัวแปร a) นอกจากนี้ยังจะต้องส่งออกรูปภาพ นี่ทำให้ฉันสงสัยว่าถ้าโดยพื้นฐานแล้วงานทั้งหมดของคุณเสร็จสิ้นแล้ว ทำไมคุณถึงพยายามใช้สิ่งนี้ใน Simulink? ผลลัพธ์ที่คุณต้องการจากกระบวนการทั้งหมดนี้คืออะไร? ซึ่งจะส่งผลอย่างมากต่อการดำเนินการต่อไป - person grungetta; 30.09.2012
comment
ฉันพลาดบางบล็อกในโมเดลของฉัน ฉันได้อัปโหลดโมเดลของฉันอีกครั้งที่ tinypic.com/view .php?pic=1zzj3o1&s=6 . คุณชาย ฉันได้ลองทำตามคำแนะนำทั้งหมดที่คุณบอกฉันแล้ว แต่โมเดลของฉันไม่ทำงาน เนื่องจากยังไม่ได้เลือกหนึ่งเฟรมและประมวลผลในฟังก์ชัน Matlab - person Shayan Ali; 04.10.2012
comment
@ShayanAli คุณสามารถโพสต์รหัส Matlab เวอร์ชันอัปเดตของคุณได้ไหม คุณยังได้รับข้อความแสดงข้อผิดพลาดใดๆ เป็นพิเศษหรือไม่ (หากเป็นเช่นนั้น โปรดโพสต์) ตอนนี้การตั้งค่าพารามิเตอร์สำหรับบล็อกฟังก์ชัน Matlab คืออะไร บางทีอาจจำเป็นต้องเปลี่ยนแปลงเนื่องจากรูปแบบของอินพุตและเอาต์พุตของคุณเปลี่ยนไป - person grungetta; 04.10.2012
comment
ท่านจะดีกว่าไหมถ้าฉันอธิบายปัญหาของฉันให้คุณทราบก่อนว่าไฟล์ avi ซึ่งฉันมีนั้นเป็นของถนนและฉันกำลังพยายามตรวจจับเลนถนนโดยใช้การแปลงแบบ hough ประการแรกฉันพยายามใช้สิ่งนั้นใน simulink แต่มันไม่ทำงาน จากนั้น ฉันได้เขียนฟังก์ชัน Matlab สำหรับมันและพยายามใช้มันในโมเดล simulink ของฉัน ถ้าฉันโหลดวิดีโอนั้นใน Matlab แล้วเรียกใช้มันก็ทำงานได้ดี แต่มันทำให้ฉันมีเวลาที่ยากลำบากใน simulink หากฉันใช้โมเดลเดียวกันสำหรับรูปภาพ มันใช้งานได้ แต่เมื่อฉันใช้โมเดลนั้นกับวิดีโอ มันก็ไม่ทำงาน อีกประการหนึ่งอินพุตของฉันจะเปลี่ยนไปอย่างไรสำหรับรุ่นที่อัปเดต – - person Shayan Ali; 05.10.2012
comment
คุณสามารถโพสต์โค้ด MATLAB เวอร์ชันอัปเดตของคุณได้หรือไม่ นอกจากนี้ เมื่อคุณบอกว่ามันใช้งานไม่ได้ คุณได้รับข้อความแสดงข้อผิดพลาด (หากเป็นเช่นนั้น ให้โพสต์ไว้) หรือเป็นเพียงว่าผลลัพธ์ของคุณไม่ใช่สิ่งที่คุณตั้งใจ/คาดหวัง? - person grungetta; 05.10.2012
comment
Sir simulink มีบล็อกสำหรับการดำเนินการแปลง hough แต่เมื่อฉันใช้พวกมัน เลนถนนจะไม่ถูกตรวจพบแม้ว่าฉันจะจำกัดขอบเขตไว้ในพื้นที่ที่ฉันสนใจ ดังนั้นคุณจึงสามารถพูดได้ว่ามันไม่ได้ทำงานในลักษณะที่ฉันต้องการให้มันทำงาน ฉันได้อัปโหลดโมเดลไว้ที่ tinypic.com/view.php?pic=1zb5rsw&s=6 คุณช่วยแนะนำฉันได้ไหมว่าฉันจะนำไปใช้อย่างถูกต้องได้อย่างไร - person Shayan Ali; 09.10.2012
comment
ฉันคิดว่าคุณได้อ่านเรื่องนี้แล้ว แต่ถ้าไม่ลองดูที่ ลิงก์ ตัวอย่าง Simulink ในตัว ex_vision_detect_lines ทำสิ่งที่คุณกำลังมองหาได้ค่อนข้างทุกประการ (ยกเว้นบล็อก ROI) ฉันขอแนะนำให้วางแผนผลลัพธ์ของ Hough Lines ในขอบเขตเพื่อดูว่ามันส่งออกสิ่งที่คุณต้องการจริงหรือไม่ บางทีโมเดลของคุณอาจทำงานได้ดี แต่เส้นอาจมองเห็นได้ไม่ดีนัก (เช่น บางที Draw Lines กำลังวาดเส้นสีขาวบนส่วนสีขาวของรูปภาพของคุณ) - person grungetta; 10.10.2012
comment
ขอขอบคุณสำหรับคำแนะนำของคุณ จริงๆ แล้วท่านอยู่ในบล็อก ROI ฉันได้ครอบตัดเลนถนนจากวิดีโอแล้วจึงใช้เฉพาะเลนเหล่านั้นเท่านั้น ดังนั้นควรตรวจจับได้ แต่มันให้บรรทัดเดียวแก่ฉันในพื้นที่ซึ่งไม่ได้เป็นส่วนหนึ่งของ ROI ด้วยซ้ำ โปรดแนะนำฉันเกี่ยวกับสิ่งที่อาจเป็นปัญหา ขอบคุณอีกครั้ง. ฉันจะทำตามขั้นตอนที่คุณได้กล่าวไว้ข้างต้นและจะแจ้งให้คุณทราบหากฉันจะมีปัญหาบางอย่าง - person Shayan Ali; 10.10.2012
comment
เอาล่ะ ปัญหาหนึ่งอาจเป็นได้ว่า Hough Lines กำลังจะส่งออกพิกัดของเส้นที่เกี่ยวข้องกับ ROI ไม่ใช่ไปยังภาพต้นฉบับของคุณ คุณสามารถยืนยันสิ่งนี้ได้โดยใช้เอาต์พุตของ Define ROI เป็นอินพุตรูปภาพไปที่ Draw Shapes และดูว่าตอนนี้ลากเส้นในตำแหน่งที่ถูกต้องหรือไม่ หากนี่คือปัญหา ก็หมายความว่าคุณต้องเพิ่มออฟเซ็ตให้กับเอาต์พุตของ Hough Lines เพื่อแปลงจากพิกัด ROI ไปเป็นพิกัดรูปภาพต้นฉบับ - person grungetta; 10.10.2012
comment
หากต้องการค้นหาบรรทัดเพิ่มเติม คุณจะต้องเพิ่มพารามิเตอร์ Maximum number of local maxima ในบล็อก Find Local Maxima ของคุณ โปรดทราบว่าคุณอาจต้องเปลี่ยนบล็อก Selector ด้วยเช่นกัน เพื่อรองรับมิติใหม่ของเอาต์พุต Find Local Maxima เนื่องจากเอาต์พุตนี้จะกลายเป็นอาร์เรย์สองมิติ - person grungetta; 10.10.2012
comment
ขอขอบคุณสำหรับคำแนะนำและช่วยให้คุณไม่รู้ว่าคุณช่วยฉันได้มากเพียงใด ฉันได้แนบผลลัพธ์ของ 'Define ROI' เป็นอินพุตรูปภาพไปยัง 'Draw Shapes' และตอนนี้เส้นต่างๆ อยู่ที่ตำแหน่งโดยประมาณแล้ว แต่ผมไม่รู้ว่าจะเพิ่มออฟเซ็ตให้กับเอาต์พุตของ Hough Lines เพื่อแปลงจากพิกัด ROI ไปเป็นพิกัดรูปภาพต้นฉบับได้อย่างไร คุณช่วยแนะนำฉันหน่อยได้ไหม - person Shayan Ali; 11.10.2012
comment
ดูเอกสารสำหรับบล็อก Draw Shapes ดูเหมือนว่าจะมีการตั้งค่าที่ให้คุณระบุภูมิภาคที่สนใจได้ ตั้งค่าพารามิเตอร์ Draw shapes in ของบล็อกนี้เป็น Specify region of interest via port ตามเอกสาร เมื่อคุณเลือกตัวเลือกนี้ พอร์ต ROI จะปรากฏบนบล็อก ป้อนเวกเตอร์สี่องค์ประกอบของค่าจำนวนเต็ม [x y width height] โดยที่ [x y] คือพิกัดของมุมซ้ายบนของพื้นที่ - person grungetta; 12.10.2012
comment
โอเค ที่จริงแล้ว ฉันใช้ Matlab-2009 และฟีเจอร์นี้ไม่พร้อมใช้งาน ดังนั้นฉันคิดว่าฉันควรติดตั้ง Matlab-2012 ก่อนแล้วจึงลองใช้ ฉันจะแจ้งให้คุณทราบหากฉันจะมีปัญหาบางอย่าง ขอบคุณ - person Shayan Ali; 12.10.2012
comment
ควรจะพร้อมใช้งานในปี 2009 แต่คุณต้องเปิดใช้งาน อ่าน เอกสารนี้สำหรับเวอร์ชัน MATLAB 2009a ของ บล็อก Draw Shapes) อย่างที่ฉันบอกไปในความคิดเห็นล่าสุด คุณต้องเปิดกล่องโต้ตอบพารามิเตอร์สำหรับบล็อก และเลือก Specify region of interest via port สำหรับฟิลด์ Draw shapes in - person grungetta; 12.10.2012
comment
โดยทั่วไป คุณจะช่วยลดความยุ่งยากได้มากหากคุณอ่านเอกสารประกอบของแต่ละบล็อกอย่างละเอียด เอกสารออนไลน์ของ Matlab/Simulink เป็นเครื่องมือที่มีประโยชน์อย่างยิ่ง - person grungetta; 12.10.2012
comment
โอเคครับ ขอบคุณครับผมจะปฏิบัติตาม ท่านหากฉันจะกำหนด ROI ของฉันในบล็อกรูปร่างการวาด จำเป็นต้องมี 'กำหนดบล็อก ROI' ในการเริ่มต้นหรือไม่ - person Shayan Ali; 12.10.2012
comment
ความเข้าใจของฉันคือคุณต้องใช้ทั้งสองอย่าง ฉันเชื่อว่าการตั้งค่าขอบเขตความสนใจใน Draw Shapes เป็นเพียงการแจ้งให้บล็อกนั้นทราบว่าเส้นที่คุณจะวาดนั้นมีพิกัดที่สัมพันธ์กับขอบเขตที่สนใจที่ระบุ แทนที่จะสัมพันธ์กับภาพทั้งหมด - person grungetta; 13.10.2012
comment
ท่านครับ โมเดลที่อัพเดตของผมอัพโหลดแล้วที่ tinypic.com/view.php?pic=24wx15f&s=6. ฉันได้อัปโหลดเฟรมวิดีโอถนนของฉันที่ tinypic.com/view.php?pic= 2wp8c9e&s=6. พารามิเตอร์ที่ฉันใช้สำหรับ 'บล็อกกำหนด ROI' ได้รับการอัปโหลดที่ tinypic.com/ view.php?pic=24f9vo8&s=6. อัปโหลดเฟรมวิดีโอหลังจากการครอบตัดแล้วที่ tinypic.com/view.php?pic=2lbe59s&s= 6. ตอนนี้ปัญหาคือฉันกำลังใช้พารามิเตอร์เดียวกันสำหรับพอร์ต ROI ในบล็อก Draw Shapes เหมือนที่ฉันเคยใช้สำหรับบล็อก Define ROI แต่กลับไม่แสดงเส้นที่ตรวจพบในวิดีโอ พารามิเตอร์ที่ใช้คือ vector=[120 10 60 290] - person Shayan Ali; 13.10.2012
comment
อะไรอาจเป็นปัญหาครับ ฉันพยายามเปลี่ยนค่าด้วยซ้ำ แต่สุดท้ายก็ไม่ได้ให้อะไรเลย - person Shayan Ali; 13.10.2012
comment
คุณอาจเรียงลำดับอินพุต ROI ผสมกับ Draw Shapes ตามเอกสาร อินพุตเป็นเวกเตอร์ 4 องค์ประกอบที่เป็นจำนวนเต็ม [x y width height] ที่กำหนดพื้นที่สี่เหลี่ยมสำหรับวาดรูปร่าง สององค์ประกอบแรกแสดงถึงพิกัดฐานเดียวของมุมซ้ายบนของพื้นที่ สององค์ประกอบที่สองแสดงถึงความกว้างและความสูงของพื้นที่ มันกำลังมองหา [x y width height] และผมคิดว่าคุณกำลังหา [y x height width] - person grungetta; 13.10.2012
comment
นอกจากนี้ ฉันไม่แน่ใจ 100% แต่ฉันคิดว่าแทนที่จะสร้างเวกเตอร์ด้วย mux คุณควรป้อนข้อมูลโดยตรงจากบล็อกค่าคงที่ ดังนั้นอย่ามีบล็อกคงที่ 4 บล็อกที่มีค่า 20, 120, 290 และ 60 มีบล็อกคงที่หนึ่งบล็อกที่มีค่า [20, 120, 290, 60] บล็อกคงที่ไม่จำเป็นต้องเป็นสเกลาร์เท่านั้น - person grungetta; 13.10.2012
comment
คุณครับ มันน่าสนใจที่จะทราบว่าพารามิเตอร์ที่ผมได้ให้กับบล็อก ROI (ซึ่งทำงานได้อย่างสมบูรณ์แบบสำหรับมัน); ไม่ทำงานเมื่อฉันให้พวกมันเป็นอินพุตเพื่อวาดบล็อกรูปร่าง ตรวจพบเส้นสีขาวในบริเวณที่ไม่อยู่ในความสนใจของฉัน ฉันได้อัปโหลดเฟรมที่มีเส้นสีขาวที่ตรวจพบได้ที่ tinypic.com/view.php?pic= 2vmizhd&s=6. ฉันหวังว่าเส้นสีขาวจะปรากฏให้คุณเห็น - person Shayan Ali; 13.10.2012
comment
อะไรอาจเป็นปัญหา ฉันกำลังลองเปลี่ยนพารามิเตอร์ด้วย ขอขอบคุณอีกครั้งสำหรับเวลา คำแนะนำ และความช่วยเหลือของคุณ จริงๆ ฉันไม่มีคำขอบคุณเลยจริงๆ... - person Shayan Ali; 13.10.2012
comment
ณ จุดนี้ ฉันคิดว่าการเดาของคุณดีพอ ๆ กับของฉัน คุณน่าจะอยู่ในที่ที่ดีกว่าฉันที่สามารถตอบคำถามประเภทนี้ได้ คุณจะต้องผ่านการดีบักแบบเก่าที่ดี ฉันขอแนะนำให้ใช้ขอบเขตจำนวนมากและ บล็อกการแสดงผล เพื่อที่จะ ค้นหาให้แน่ชัดว่าเกิดอะไรขึ้นในแต่ละขั้นตอนของโมเดลของคุณ คุณอาจต้องทดลองเล็กน้อยกับบล็อก Draw Shapes เพื่อเรียนรู้วิธีการทำงานที่ชัดเจน อาจสร้างโมเดลใหม่ ป้อนอินพุตที่รู้จักลงใน Draw Shapes และดูว่ามันทำงานอย่างไร - person grungetta; 14.10.2012
comment
เซอร์ ซิมูลิงก์ ให้คะแนนที่ประเมินผ่านการแปลง Hough เป็น ‹4x1x251 int32› วาล(:,:,1) = 46 0 54 290 วาล(:,:,2) = 46 0 54 290 ....................... ผม ฉันไม่รู้ว่าจะวิเคราะห์มันอย่างไร มันให้ข้อมูลอะไรกับฉัน ก่อนอื่นฉันวิเคราะห์การแปลง hough ใน matlab mfile; ตรงนั้นผมได้โครงสร้างของเส้นที่สอดคล้องกับแต่ละเลนที่ตรวจพบซึ่งสามารถวิเคราะห์ได้ง่าย - person Shayan Ali; 18.10.2012