Fail letter_recognition.data ialah set data yang mengandungi 20,000 sampel huruf tulisan tangan dengan setiap huruf diwakili oleh 16 ciri. Untuk membina fail yang serupa daripada set data anda sendiri, anda boleh mengikuti langkah berikut:
results.reval() ialah tatasusunan output yang dikembalikan oleh fungsi find_nearest() kelas KNearest OpenCV. Ia mengandungi label yang diramalkan untuk sampel yang diberikan.
Untuk menulis alat pengecaman digit mudah menggunakan fail letter_recognition.data, anda boleh mengikuti langkah berikut:
Latihan:
Pengujian:
Di bawah ialah contoh kod yang menunjukkan proses latihan dan ujian:
import numpy as np import cv2 # Load training data samples = np.loadtxt('letter_recognition.data', np.float32, delimiter=',', converters={0: lambda ch: ord(ch) - ord('A')}) responses = samples[:, 0] samples = samples[:, 1:] # Create KNearest classifier model = cv2.KNearest() # Train the classifier model.train(samples, responses) # Load test image test_image = cv2.imread('test_image.png') # Preprocess the image gray = cv2.cvtColor(test_image, cv2.COLOR_BGR2GRAY) thresh = cv2.adaptiveThreshold(gray, 255, 1, 1, 11, 2) # Extract digits contours, hierarchy = cv2.findContours(thresh, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) digits = [] for cnt in contours: if cv2.contourArea(cnt) > 50: [x, y, w, h] = cv2.boundingRect(cnt) roi = thresh[y:y + h, x:x + w] roismall = cv2.resize(roi, (10, 10)) digits.append(roismall) # Predict labels for digits results = model.find_nearest(np.array(digits), 10) labels = [chr(ch + ord('A')) for ch in results[0]] # Display recognized digits on the image for i, label in enumerate(labels): cv2.putText(test_image, str(label), (digits[i][0], digits[i][1]), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0)) cv2.imshow('Recognized Digits', test_image) cv2.waitKey(0)
Dengan mengikuti langkah-langkah ini dan memanfaatkan pengelas KNearest dalam OpenCV, anda boleh mencipta alat pengecaman digit asas yang boleh dipertingkatkan lagi untuk tugas pengecaman digit yang lebih kompleks.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengecaman Digit Mudah dalam OpenCV-Python menggunakan set Data letter_recognition.data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!