หน้าแรก
หน้าแรก
รายการที่เชื่อมโยงเป็นโครงสร้างข้อมูลเชิงเส้นซึ่งแต่ละโหนดมีสองบล็อก โดยที่หนึ่งบล็อกมีค่าหรือข้อมูลของโหนด และอีกบล็อกหนึ่งมีที่อยู่ของฟิลด์ถัดไป สมมติว่าเรามีรายการที่เชื่อมโยงซึ่งแต่ละโหนดมีข้อมูลและตัวชี้ซึ่งชี้ไปยังโหนดถัดไปของรายการที่เชื่อมโยง งานคือการแยกรายการเชื่อมโยงที่กำหนด การแยกรายการ
สตริงจะเรียกว่าสตริงพาลินโดรมหากมันยังคงเหมือนเดิมหลังจากย้อนกลับ ในปัญหาเฉพาะนี้ เราได้ให้สตริง a และ b สองสตริงที่มีความยาวเท่ากัน หากถูกแบ่งด้วยดัชนีบางรายการ ภารกิจคือตรวจสอบว่าผลรวมของสตริงสร้างพาลินโดรมหรือไม่ สมมติว่าเรามีสตริง a และ b สองสตริงที่มีความยาว 4 และหลังจากแยกสตริงทั้งสองที่ดัชน
สมมุติว่าเรามีไบนารีทรีและงานคือตรวจสอบว่าสร้างสมมาตรของตัวมันเองหรือไม่ ต้นไม้ไบนารีสมมาตรสร้างภาพสะท้อนของตัวเอง ตัวอย่าง อินพุต-1: ผลลัพธ์: True คำอธิบาย: เนื่องจากไบนารีทรีที่กำหนดจะสร้างภาพสะท้อนของตัวมันเอง ผลลัพธ์ที่ได้จึงเป็น True อินพุต-2: ผลลัพธ์: False คำอธิบาย:
เรามาเรียนรู้เกี่ยวกับ C# และ C++ กันก่อน - C# เป็นภาษาโปรแกรมเชิงวัตถุทั่วไป ถือว่าเป็นภาษาการเขียนโปรแกรมเชิงวัตถุอย่างแท้จริง ออกเสียงว่า ซี ชาร์ป ได้รับการพัฒนาโดย Anders Hejlsberg และทีมงานของเขาที่ Microsoft การจัดการหน่วยความจำทำโดยอัตโนมัติโดยตัวรวบรวมขยะ เป็นหน้าที่ของภาษาที่จะลบวัตถุโดยอั
ในบทความนี้ เราจะเข้าใจความแตกต่างระหว่างอ็อบเจกต์และคลาสที่เกี่ยวกับภาษาการเขียนโปรแกรม C++ คลาสในภาษา C++ เป็นหน่วยการสร้างของโค้ดใน C++ ที่ช่วยปรับใช้การเขียนโปรแกรมเชิงวัตถุ เป็นประเภทที่กำหนดโดยผู้ใช้ มีข้อมูลสมาชิกและฟังก์ชันสมาชิกของตัวเอง เข้าถึงข้อมูลสมาชิกและฟังก์ชันของสมาชิกได้โดยการสร้า
OpenCV ย่อมาจาก วิสัยทัศน์คอมพิวเตอร์โอเพ่นซอร์ส . สร้างขึ้นเพื่อรองรับโครงสร้างพื้นฐานทั่วไปสำหรับการดำเนินการวิชันซิสเต็มและใช้พฤติกรรมของระบบในผลิตภัณฑ์ทางการเงิน โดยทั่วไปจะกำหนดเป้าหมายการประมวลผลภาพ การจดจำใบหน้า การจับภาพวิดีโอ การค้นหา และการเปิดเผยวัตถุ OpenCV ถูกสร้างขึ้นเพื่อใช้ในการดำเน
มีสามขั้นตอนในการติดตั้ง OpenCV ซึ่งมีดังนี้ - ดาวน์โหลดซอฟต์แวร์ที่จำเป็นทั้งหมดและติดตั้ง กำลังประมวลผล OpenCV สำหรับ Visual Studio การเชื่อมโยง OpenCV กับ Visual Studio ให้เรากำหนดขั้นตอนเหล่านี้ทีละรายการ ขั้นตอนที่ 1 - การดาวน์โหลดและติดตั้งซอฟต์แวร์ที่จำเป็น เราจะใช้ OpenCV ใน Microsoft Vi
ในหัวข้อนี้ เราจะกำหนดวิธีการโหลดและแสดงรูปภาพโดยใช้ OpenCV ใน C++ มีฟังก์ชันต่อไปนี้ที่จำเป็นสำหรับการโหลดและแสดงรูปภาพใน OpenCV แมท: Mat ไม่ใช่ฟังก์ชัน เป็นโครงสร้างข้อมูล ชนิดของตัวแปร เช่นเดียวกับประเภทตัวแปร int, char, string ใน C ++ Mat เป็นตัวแปรของ OpenCV ซึ่งสร้างโครงสร้างข้อมูลเมทริกซ์เพ
ที่นี่ เราจะเข้าใจวิธีการบันทึกอิมเมจ OpenCV ไปยังตำแหน่งใดๆ บนคอมพิวเตอร์ของคุณ OpenCV ให้ imwrite() ฟังก์ชั่นบันทึกภาพไปยังไฟล์ที่ระบุ นามสกุลไฟล์แสดงถึงรูปแบบภาพ รูปแบบที่แท้จริงของฟังก์ชันคือ − imwrite("Destination/Name of the image with extension", Source Matrix) ที่นี่ ปลายทาง คือ
อาร์เรย์เป็นวิธีที่สะดวกในการจัดเก็บและดึงข้อมูลการรวบรวมข้อมูล ใน OpenCV เราสามารถใช้แนวคิดนี้เพื่อโหลดภาพหลายภาพในอาร์เรย์ภาพและแสดงโดยใช้หมายเลขดัชนีของอาร์เรย์ โปรแกรมต่อไปนี้โหลดหลายภาพในอาร์เรย์เมทริกซ์และแสดงภาพของอาร์เรย์ที่เรียกโดยหมายเลขดัชนี ตัวอย่าง #include<iostream> #include<
ในหัวข้อนี้ เราจะเข้าใจวิธีค้นหาจำนวนช่องของรูปภาพ หลังจากรันโปรแกรม หมายเลขช่องจะแสดงในหน้าต่างคอนโซล เพื่อให้ได้จำนวนช่อง เราได้ใช้คลาสของ OpenCV ชื่อ channels() เมื่อเราส่งเมทริกซ์รูปภาพเป็นออบเจ็กต์ของคลาส channels() มันจะทำให้แชนเนลเป็นค่าจำนวนเต็ม โปรแกรมต่อไปนี้นับจำนวนช่องและแสดงในหน้าต่าง
ภาพ RGB มีสามช่องสัญญาณ ได้แก่ สีแดง สีเขียว และสีน้ำเงิน พื้นที่สีที่ช่องสีแดง สีเขียว และสีน้ำเงินแทนภาพเรียกว่าปริภูมิสี RGB ใน OpenCV จะใช้ลำดับ BGR แทน RGB ซึ่งหมายความว่าช่องแรกเป็นสีน้ำเงิน ช่องที่สองเป็นสีเขียว และช่องที่สามเป็นสีแดง ในการแบ่งภาพ RGB ออกเป็นแชนเนลต่างๆ เราต้องกำหนดเมทริกซ์ 3
พื้นที่สีเป็นแบบจำลองของการแสดงสี มีหลายวิธีในการอธิบายสี เช่น RGB, CYMK, HSV, โทนสีเทา เป็นต้น ที่นี่ เราใช้ส่วนหัวใหม่ชื่อ imgproc.hpp imgproc.hpp . นี้ เป็นตัวย่อของการประมวลผลภาพ ในการแปลงปริภูมิสี เราจำเป็นต้องใช้ cvtColor() การทำงานของ OpenCV ฟังก์ชันนี้กำหนดไว้ใน imgproc ไฟล์ส่วนหัว เราจึงร
ภาพไบนารีเป็นเพียงภาพดิจิทัลที่แสดงสองสีคือขาวดำ จากมุมมองของการประมวลผลภาพ ภาพไบนารีประกอบด้วยพิกเซลที่มีค่าที่เป็นไปได้สองค่า - ศูนย์และหนึ่ง เมื่อค่าของพิกเซลเป็น 0 แสดงว่าเป็นสีดำล้วน เมื่อค่าของพิกเซลเท่ากับ 1 แสดงว่าเป็นสีขาวบริสุทธิ์ ในภาพระดับสีเทา มีค่าที่เป็นไปได้ที่แตกต่างกัน 256 ค่าสำหร
การกลับภาพไบนารีหมายถึงการกลับค่าพิกเซล จากมุมมองของภาพ เมื่อเรากลับภาพไบนารี พิกเซลสีขาวจะถูกแปลงเป็นสีดำ และพิกเซลสีดำจะถูกแปลงเป็นสีขาว รูปแบบพื้นฐานของฟังก์ชันนี้คือ − cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY); บรรทัดถัดไปคือการแปลงรูปภาพระดับสีเทาเป็นรูปภาพไบนารีและจัดเก็บรูปภ
ภาพดิจิทัลประกอบด้วยพิกเซล การใช้ OpenCV ทำให้ง่ายต่อการอ่านค่าของพิกเซล อย่างไรก็ตาม หากต้องการได้ค่าพิกเซล เราต้องแยกช่องสัญญาณแยกกัน ที่นี่เรากำลังโหลดรูปภาพในเมทริกซ์ชื่อ cimage จากนั้นมันจะแปลงรูปภาพโดยใช้ cvtColor(cimage, img, COLOR_BGR2GRAY); และเก็บไว้ในเมทริกซ์ชื่อ img โปรแกรมต่อไปนี้จะ
ในการลากเส้นเราต้องการสองจุด - จุดเริ่มต้นและจุดสิ้นสุด นอกจากนี้เรายังต้องการผ้าใบเพื่อวาดเส้น การใช้ OpenCV ซึ่งเป็นเมทริกซ์ในแคนวาส เราต้องกำหนดจุดเริ่มต้นและจุดสิ้นสุดของบรรทัด เราต้องกำหนดสีให้กับเส้นด้วย ต้องอธิบายความหนาของเส้นด้วย หากเราต้องการวาดเส้นโดยใช้ OpenCV เราจำเป็นต้องประกาศเมทริกซ
วงกลมมีจุดศูนย์กลางและรัศมี ในการวาดวงกลมโดยใช้ OpenCV เราต้องกำหนดจุดศูนย์กลางและรัศมี ใน OpenCV เราต้องรวม ส่วนหัวเนื่องจากมีการกำหนดฟังก์ชัน circle() ในส่วนหัวนี้ ไวยากรณ์พื้นฐานของวิธีนี้มีดังนี้ − ไวยากรณ์ circle(whiteMatrix, center,radius, line_Color, thickness); โปรแกรมต่อไปนี้แสดงวิธีการว
ในการวาดวงรี เราจำเป็นต้องมีศูนย์กลาง แกนหลัก และแกนรอง นั่นหมายความว่าเราต้องการพารามิเตอร์สามตัวสำหรับวงรี เราต้องการเมทริกซ์ที่เราจะวาดวงรี และเราจำเป็นต้องประกาศความหนาของเส้นและสีของเส้น เมื่อเราต้องการวาดวงรีโดยใช้ OpenCV เราต้องพูดถึงมุมของการหมุน และมีพารามิเตอร์เพิ่มเติมสองจุดเริ่มต้นและจุ
ในการวาดรูปสี่เหลี่ยมผืนผ้า เราต้องการสี่จุด ดูรูปต่อไปนี้ ในรูป มีสี่จุด x1, x2, y1 และ y2 สี่จุดเหล่านี้สร้างสี่พิกัด ในการวาดรูปสี่เหลี่ยมผืนผ้าโดยใช้ OpenCV เราต้องกำหนดจุดเหล่านี้และแสดงสี่เหลี่ยมที่เราต้องการเมทริกซ์ เราต้องประกาศค่าที่เกี่ยวข้องอื่นๆ เช่น สีของเส้นและความกว้างของเส้น ไวยา