คำถามติดแท็ก opencv

OpenCV (Open Source Computer Vision) เป็นห้องสมุดสำหรับการมองเห็นคอมพิวเตอร์แบบเรียลไทม์ เมื่อใช้แท็กนี้โปรดพูดถึงรุ่น OpenCV ที่คุณใช้งาน (เช่น 3.4.6) และเพิ่มแท็กเฉพาะภาษา (python, c ++, ... ) หากจำเป็น

24
การประมวลผลภาพ: การปรับปรุงอัลกอริทึมสำหรับการรับรู้ 'Coca-Cola Can'
หนึ่งในโครงการที่น่าสนใจที่สุดที่ผมเคยทำงานอยู่ในคู่ที่ผ่านมาของปีที่ผ่านมาเป็นโครงการเกี่ยวกับการประมวลผลภาพ เป้าหมายคือการพัฒนาระบบเพื่อให้สามารถรู้จัก'กระป๋อง' ของ Coca-Cola (โปรดทราบว่าฉันกำลังเน้นคำว่า 'กระป๋อง' คุณจะเห็นว่าทำไมในหนึ่งนาที) คุณสามารถดูตัวอย่างด้านล่างโดยที่สามารถรู้จักในสี่เหลี่ยมสีเขียวพร้อมสเกลและการหมุน ข้อ จำกัด บางประการเกี่ยวกับโครงการ: พื้นหลังอาจมีเสียงดังมาก สามารถจะมีขนาดหรือหมุนหรือรสนิยมแม้กระทั่ง (ภายในขอบเขตที่เหมาะสม) ภาพอาจมีความเลือนในระดับหนึ่ง (รูปทรงอาจไม่ตรงทั้งหมด) อาจมีขวด Coca-Cola ในภาพและอัลกอริทึมควรตรวจจับความสามารถเท่านั้น! ความสว่างของภาพอาจแตกต่างกันมาก (ดังนั้นคุณไม่สามารถเชื่อถือได้ "มากเกินไป" ในการตรวจจับสี) สามารถจะถูกซ่อนไว้บางส่วนที่ด้านข้างหรือตรงกลางและอาจจะเป็นส่วนหนึ่งที่ซ่อนอยู่เบื้องหลังขวด ในภาพอาจจะไม่สามารถทำได้ซึ่งในกรณีนี้คุณต้องไม่พบอะไรเลยและเขียนข้อความโดยบอกว่าเป็นเช่นนั้น ดังนั้นคุณสามารถจบลงด้วยสิ่งที่ยุ่งยากเช่นนี้ (ซึ่งในกรณีนี้อัลกอริทึมของฉันล้มเหลวโดยสิ้นเชิง): ฉันทำโครงการนี้เมื่อไม่นานมานี้และสนุกกับการทำมันมากและฉันก็มีการนำไปใช้ที่เหมาะสม นี่คือรายละเอียดบางอย่างเกี่ยวกับการใช้งานของฉัน: ภาษา : เสร็จใน C ++ โดยใช้ไลบรารีOpenCV การประมวลผลล่วงหน้า : สำหรับการประมวลผลภาพล่วงหน้าเช่นเปลี่ยนภาพให้อยู่ในรูปแบบดิบมากขึ้นเพื่อมอบให้กับอัลกอริทึมฉันใช้ 2 วิธี: การเปลี่ยนโดเมนสีจาก RGB เป็นHSVและการกรองตามเฉดสี "สีแดง" ความอิ่มตัวของสีเหนือขีด จำกัด ที่กำหนดเพื่อหลีกเลี่ยงสีที่มีลักษณะคล้ายสีส้มและการกรองค่าต่ำเพื่อหลีกเลี่ยงโทนมืด ผลลัพธ์ที่ได้คือภาพขาวดำไบนารีซึ่งพิกเซลสีขาวทั้งหมดจะเป็นตัวแทนของพิกเซลที่ตรงกับเกณฑ์นี้ เห็นได้ชัดว่ายังมีอึมากในภาพ แต่จะช่วยลดจำนวนมิติที่คุณต้องทำงานด้วย …

10
วิธีการตรวจสอบต้นคริสต์มาส [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดเมื่อปีที่แล้ว เทคนิคการประมวลผลภาพใดที่สามารถใช้ในการใช้แอพพลิเคชั่นที่ตรวจจับต้นคริสต์มาสที่แสดงในภาพต่อไปนี้ ฉันกำลังค้นหาวิธีแก้ปัญหาที่จะทำงานกับภาพเหล่านี้ ดังนั้นวิธีการที่ต้องใช้ตัวแยกประเภทการฝึกอบรมหรือการจับคู่แม่แบบไม่น่าสนใจมาก ฉันกำลังมองหาบางอย่างที่สามารถเขียนได้ในภาษาการเขียนโปรแกรมใด ๆตราบใดที่มันใช้เทคโนโลยีโอเพนซอร์สเท่านั้น การแก้ปัญหาจะต้องทดสอบกับภาพที่ใช้ร่วมกันในคำถามนี้ มีภาพอินพุต 6 รูปและคำตอบควรแสดงผลลัพธ์ของการประมวลผลแต่ละภาพ ในที่สุดสำหรับแต่ละภาพออกจะต้องมีเส้นสีแดงลากเพื่อล้อมต้นไม้ที่ตรวจพบ คุณจะไปเกี่ยวกับการตรวจจับต้นไม้ในรูปแบบโดยทางโปรแกรมอย่างไร

3
OCR การรับรู้ตัวเลขอย่างง่ายใน OpenCV-Python
ฉันกำลังพยายามใช้ "OCR Recognition Digit" ใน OpenCV-Python (cv2) มันเป็นเพียงเพื่อการเรียนรู้ ฉันต้องการเรียนรู้ทั้งคุณสมบัติ KNearest และ SVM ใน OpenCV ฉันมี 100 ตัวอย่าง (เช่นภาพ) ของแต่ละหลัก ฉันต้องการฝึกกับพวกเขา มีตัวอย่างอยู่ letter_recog.pyที่มาพร้อมกับตัวอย่าง OpenCV แต่ฉันก็ยังนึกไม่ออกว่าจะใช้ยังไง ฉันไม่เข้าใจว่าตัวอย่างการตอบกลับคืออะไรและมันโหลดไฟล์ txt ในตอนแรกซึ่งฉันไม่เข้าใจก่อน ต่อมาในการค้นหาเล็กน้อยฉันสามารถหา letter_recognition.data ในตัวอย่าง cpp ฉันใช้มันและสร้างรหัสสำหรับ cv2.K ใกล้เคียงที่สุดในรูปแบบของ letter_recog.py (สำหรับการทดสอบ): import numpy as np import cv2 fn = 'letter-recognition.data' a = np.loadtxt(fn, np.float32, delimiter=',', …

16
ไม่พบโมดูล cv2 เมื่อใช้ OpenCV
ฉันได้ติดตั้งOpenCVบนระบบปฏิบัติการ Occidentalis (ตัวแปรของ Raspbian) ใน Raspberry Pi โดยใช้สคริปต์ของ jayrambhia ที่นี่ที่นี่ติดตั้งเวอร์ชัน 2.4.5 แล้ว เมื่อฉันลองimport cv2ใช้โปรแกรม Python ฉันจะได้รับข้อความต่อไปนี้: pi@raspberrypi~$ python cam.py Traceback (most recent call last) File "cam.py", line 1, in <module> import cv2 ImportError: No module named cv2 ไฟล์cv2.soถูกเก็บไว้ใน/usr/local/lib/python2.7/site-packages/... นอกจากนี้ยังมีโฟลเดอร์ใน /usr/local/libเรียกว่า python3.2 และ python2.6 ซึ่งอาจเป็นปัญหา แต่ฉันไม่แน่ใจ นี่อาจเป็นข้อผิดพลาดของเส้นทางหรือไม่ ความช่วยเหลือใด ๆ ที่ชื่นชมฉันยังใหม่กับ Linux

8
วิธีการครอบตัดรูปภาพใน OpenCV โดยใช้ Python
ฉันจะครอบตัดรูปภาพอย่างที่เคยทำใน PIL ด้วย OpenCV ได้อย่างไร ตัวอย่างการทำงานบน PIL im = Image.open('0.png').convert('L') im = im.crop((1, 1, 98, 33)) im.save('_0.png') แต่ฉันจะทำบน OpenCV ได้อย่างไร นี่คือสิ่งที่ฉันพยายาม: im = cv.imread('0.png', cv.CV_LOAD_IMAGE_GRAYSCALE) (thresh, im_bw) = cv.threshold(im, 128, 255, cv.THRESH_OTSU) im = cv.getRectSubPix(im_bw, (98, 33), (1, 1)) cv.imshow('Img', im) cv.waitKey(0) แต่มันไม่ทำงาน getRectSubPixผมคิดว่าผมใช้ไม่ถูกต้อง หากเป็นกรณีนี้โปรดอธิบายวิธีที่ฉันสามารถใช้ฟังก์ชั่นนี้ได้อย่างถูกต้อง
234 python  opencv 

30
ฉันจะติดตั้ง Python OpenCV ผ่าน Conda ได้อย่างไร
ฉันกำลังพยายามติดตั้ง OpenCV สำหรับ Python ผ่านAnacondaแต่ฉันไม่สามารถเข้าใจได้ ฉันเหนื่อย conda install opencv conda install cv2 ฉันลองค้นหาด้วย conda search cv ไม่มีซิการ์ ฉันวิ่งข้ามสิ่งนี้ซึ่งแสดงรายการopencvเป็นแพคเกจรวม: http://docs.continuum.io/anaconda/pkgs.html หลังจากทำงานconda infoฉันสังเกตเห็นว่าเวอร์ชันของฉันคือ 3.4.1 แต่ฉันไม่พบข้อมูลใด ๆ เกี่ยวกับเวอร์ชันนี้ทางออนไลน์ ฉันค่อนข้างสับสนเกี่ยวกับเรื่องนี้ ฉันคิดถึงสิ่งที่เห็นได้ชัดที่นี่หรือไม่ หากopencvมีให้สำหรับ Anaconda รุ่นก่อนหน้าแล้วทำไมจึงไม่พร้อมใช้งานสำหรับเวอร์ชันที่ใหม่กว่า และทำไมลิงค์นั้นแสดงเอกสารสำหรับรุ่น 1.9.2 ถึงฉันเท่านั้น
229 python  opencv  anaconda  conda 


6
วิธีลบข้อบกพร่องที่นูนออกมาในจตุรัส Sudoku?
ฉันกำลังทำโครงการสนุก: แก้ปัญหา Sudoku จากภาพอินพุตโดยใช้ OpenCV (เช่นใน Google goggles และอื่น ๆ ) และฉันก็ทำงานให้เสร็จ แต่ในที่สุดฉันก็พบปัญหาเล็กน้อยซึ่งมาที่นี่ ฉันเขียนโปรแกรมโดยใช้ Python API ของ OpenCV 2.3.1 ด้านล่างเป็นสิ่งที่ฉันทำ: อ่านภาพ ค้นหารูปทรง เลือกรายการที่มีพื้นที่สูงสุด (และยังเท่ากับสี่เหลี่ยม) ค้นหาจุดมุม เช่นรับด้านล่าง: ( โปรดสังเกตที่นี่ว่าเส้นสีเขียวนั้นสอดคล้องกับขอบเขตที่แท้จริงของ Sudoku อย่างถูกต้องดังนั้น Sudoku จึงสามารถวาร์ปได้อย่างถูกต้องตรวจสอบภาพถัดไป) บิดภาพเป็นสี่เหลี่ยมจัตุรัสที่สมบูรณ์แบบ เช่นรูปภาพ: ดำเนินการ OCR (ซึ่งฉันใช้วิธีที่ฉันให้ไว้ในSimple Digit OCR Recognition ใน OpenCV-Python ) และวิธีการทำงานได้ดี ปัญหา: ลองดูภาพนี้ การดำเนินการตามขั้นตอนที่ 4 ในภาพนี้จะให้ผลลัพธ์ด้านล่าง: เส้นสีแดงที่ลากเป็นเส้นชั้นความสูงดั้งเดิมซึ่งเป็นโครงร่างที่แท้จริงของขอบเขตซูโดกุ …

7
วิธีที่ง่ายและรวดเร็วในการเปรียบเทียบภาพสำหรับความคล้ายคลึงกัน
ฉันต้องการวิธีที่ง่ายและรวดเร็วในการเปรียบเทียบภาพสองภาพเพื่อความคล้ายคลึงกัน คือฉันต้องการได้รับมูลค่าสูงหากมีสิ่งเดียวกัน แต่อาจมีพื้นหลังแตกต่างกันเล็กน้อยและอาจถูกย้าย / ปรับขนาดด้วยพิกเซลไม่กี่ (มีรูปธรรมมากขึ้นหากเป็นสิ่งสำคัญ: รูปภาพหนึ่งเป็นไอคอนและอีกรูปภาพหนึ่งเป็นพื้นที่ย่อยของภาพหน้าจอและฉันต้องการทราบว่าพื้นที่ย่อยนั้นเป็นไอคอนหรือไม่) ฉันมีOpenCVในมือ แต่ก็ยังไม่คุ้นเคยกับมัน ความเป็นไปได้อย่างหนึ่งที่ฉันคิดเกี่ยวกับ: แบ่งภาพทั้งสองออกเป็น 10x10 เซลล์และสำหรับแต่ละ 100 เซลล์เหล่านั้นเปรียบเทียบฮิสโตแกรมสี จากนั้นฉันสามารถตั้งค่าขีด จำกัด ที่สร้างขึ้นบางส่วนและถ้าค่าที่ฉันได้รับนั้นสูงกว่าขีด จำกัด นั้นฉันถือว่ามันคล้ายกัน ฉันยังไม่ได้ลอง แต่ใช้งานได้ดี แต่ฉันคิดว่ามันจะดีพอ ภาพมีความคล้ายกันอยู่แล้ว (ในกรณีที่ใช้งาน) ดังนั้นฉันจึงสามารถใช้ค่าเกณฑ์ที่ค่อนข้างสูงได้ ฉันเดาว่ามีวิธีแก้ปัญหาที่เป็นไปได้อื่น ๆ อีกมากมายสำหรับสิ่งนี้ซึ่งจะทำงานได้มากหรือน้อย (เนื่องจากงานนั้นค่อนข้างง่ายเพราะฉันต้องการตรวจจับความเหมือนกันหากพวกมันคล้ายกันมากจริงๆ) คุณจะแนะนำอะไร มีคำถามที่เกี่ยวข้องมาก / คล้ายกันสองสามข้อเกี่ยวกับการขอรับลายเซ็น / ลายนิ้วมือ / แฮชจากรูปภาพ: OpenCV / SURF วิธีสร้างแฮชรูปภาพ / ลายนิ้วมือ / ลายเซ็นจากตัวอธิบาย? ภาพลายนิ้วมือเพื่อเปรียบเทียบความคล้ายคลึงกันของภาพจำนวนมาก การตรวจจับภาพที่ใกล้เคียงกัน OpenCV: ลายนิ้วมือภาพและเปรียบเทียบกับฐานข้อมูล …

6
OpenCV C ++ / Obj-C: การตรวจจับกระดาษ / การตรวจจับสี่เหลี่ยม
ฉันนำตัวอย่างการตรวจจับสี่เหลี่ยมจัตุรัส OpenCV ไปใช้ในแอปพลิเคชันทดสอบของฉันได้สำเร็จแล้ว แต่ตอนนี้ต้องกรองผลลัพธ์เนื่องจากมันค่อนข้างยุ่ง - หรือรหัสของฉันผิด ฉันสนใจในจุดสี่มุมของกระดาษเพื่อลดการเอียง (เช่นนั้น ) และการประมวลผลเพิ่มเติม ... อินพุตและเอาต์พุต: ภาพต้นฉบับ: คลิก รหัส: double angle( cv::Point pt1, cv::Point pt2, cv::Point pt0 ) { double dx1 = pt1.x - pt0.x; double dy1 = pt1.y - pt0.y; double dx2 = pt2.x - pt0.x; double dy2 = pt2.y - pt0.y; return …

2
OpenCV - แผนที่ความลึกจากระบบสเตอริโอที่ไม่ปรับเทียบ
ฉันกำลังพยายามหาแผนที่เชิงลึกด้วยวิธีที่ไม่ได้ปรับเทียบ cv2.findFundamentalMatฉันสามารถขอรับเมทริกซ์พื้นฐานโดยการหาจุดผู้สื่อข่าวกับร่อนแล้วใช้ จากนั้นฉันจะใช้cv2.stereoRectifyUncalibratedเมทริกซ์โฮโมกราฟฟีสำหรับแต่ละภาพ สุดท้ายฉันใช้cv2.warpPerspectiveเพื่อแก้ไขและคำนวณความเหลื่อมล้ำ แต่สิ่งนี้ไม่ได้สร้างแผนที่เชิงลึกที่ดี ค่าที่สูงมากดังนั้นฉันสงสัยว่าถ้าผมต้องใช้warpPerspectiveหรือถ้ามีการคำนวณเมทริกซ์หมุนจากการฝึกอบรม homography stereoRectifyUncalibratedผมได้ด้วย ฉันไม่แน่ใจเกี่ยวกับเมทริกซ์โพรเจกไทล์กับกรณีของเมทริกซ์ homography ที่ได้จากstereoRectifyUncalibratedการแก้ไข ส่วนหนึ่งของรหัส: #Obtainment of the correspondent point with SIFT sift = cv2.SIFT() ###find the keypoints and descriptors with SIFT kp1, des1 = sift.detectAndCompute(dst1,None) kp2, des2 = sift.detectAndCompute(dst2,None) ###FLANN parameters FLANN_INDEX_KDTREE = 0 index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5) …

5
วิธีการปรับขนาดภาพด้วย OpenCV2.0 และ Python2.6
ฉันต้องการใช้ OpenCV2.0 และ Python2.6 เพื่อแสดงภาพที่ปรับขนาดแล้ว ผมใช้และนำมาใช้ตัวอย่างที่http://opencv.willowgarage.com/documentation/python/cookbook.htmlแต่โชคร้ายรหัสนี้สำหรับ OpenCV2.1 และดูเหมือนจะไม่ได้ทำงานกับ 2.0 นี่รหัสของฉัน: import os, glob import cv ulpath = "exampleshq/" for infile in glob.glob( os.path.join(ulpath, "*.jpg") ): im = cv.LoadImage(infile) thumbnail = cv.CreateMat(im.rows/10, im.cols/10, cv.CV_8UC3) cv.Resize(im, thumbnail) cv.NamedWindow(infile) cv.ShowImage(infile, thumbnail) cv.WaitKey(0) cv.DestroyWindow(name) เนื่องจากฉันไม่สามารถใช้ cv.LoadImageM ฉันใช้ cv.LoadImage แทนซึ่งไม่มีปัญหาในแอปพลิเคชันอื่น อย่างไรก็ตาม cv.iplimage ไม่มีแถวแอตทริบิวต์, cols หรือขนาด …

9
แยกข้อความ OpenCV
ฉันพยายามค้นหากรอบข้อความในรูปภาพและขณะนี้ใช้วิธีนี้: // calculate the local variances of the grayscale image Mat t_mean, t_mean_2; Mat grayF; outImg_gray.convertTo(grayF, CV_32F); int winSize = 35; blur(grayF, t_mean, cv::Size(winSize,winSize)); blur(grayF.mul(grayF), t_mean_2, cv::Size(winSize,winSize)); Mat varMat = t_mean_2 - t_mean.mul(t_mean); varMat.convertTo(varMat, CV_8U); // threshold the high variance regions Mat varMatRegions = varMat > 100; เมื่อได้รับภาพเช่นนี้: จากนั้นเมื่อฉันแสดงvarMatRegionsฉันได้รับภาพนี้: ในขณะที่คุณเห็นมันค่อนข้างรวมบล็อกด้านซ้ายของข้อความกับส่วนหัวของการ์ดสำหรับการ์ดส่วนใหญ่วิธีนี้ใช้งานได้ดี …

7
OpenCV ใน Android Studio
ฉันต้องการใช้ห้องสมุด OpenCV ในแอพของฉันกับ Android Studio ฉันทำตามคำแนะนำพบที่นี่แต่ฉันได้รับข้อผิดพลาด ไม่พบการกำหนดค่าด้วยชื่อ 'ค่าเริ่มต้น' มีอะไรผิดปกติ? ฉันใช้ Android Studio 1.0 กับ gradle 2.2.1

4
ฉันจะประเมินได้อย่างไรว่ามีสองภาพที่คล้ายกันกับ OpenCV?
OpenCV รองรับการเปรียบเทียบภาพสองภาพโดยคืนค่าบางค่า (อาจเป็นเปอร์เซ็นต์) ที่ระบุว่าภาพเหล่านี้คล้ายกันอย่างไร เช่น 100% จะถูกส่งกลับหากภาพเดียวกันถูกส่งผ่านสองครั้ง 0% จะถูกส่งกลับหากภาพนั้นแตกต่างกันโดยสิ้นเชิง ฉันได้อ่านหัวข้อที่คล้ายกันจำนวนมากที่นี่ใน StackOverflow แล้ว ฉันทำ Googling ด้วยเช่นกัน น่าเศร้าที่ฉันไม่สามารถหาคำตอบที่น่าพอใจได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.