'daki bir yüzdeyi kullanarak bazı görüntüleri rastgele okuduğum bir SVM sınıflandırıcıyı devralacağım, bunun için resimlerim vardı ve OpenCv 3.0'ı kullanarak eğitim için% 80 ve rastgele test için% 20 okuyacağım. 0 ve C++. Lütfen bana yardımcı olabilir misiniz? Resimlerim aynı klasörde. Şunları yapabilirsinizOpenCv 3.0.0
cevap
:
- OpenCV glob fonksiyonu ile belirtilen klasördeki tüm dosyaları okuyun. Sen
görüntüleri ile bir şeyler yapın karıştırılır vektörün sadece ilk% XX adlarını tutun dosya adlarının
std::random_shuffle
vektör, birstd::vector<std::string>
içine tüm dosya adlarını tasarruf edersiniz
Kodu:
#include <opencv2/opencv.hpp>
#include <vector>
#include <string>
#include <algorithm>
int main()
{
// Read all .png files from the specified folder
std::string folder = "D:/SO/img/*.png";
std::vector<std::string> filenames;
cv::glob(folder, filenames);
// Random shuffle
std::random_shuffle(filenames.begin(), filenames.end());
// Keep 80%
float how_many = 0.80;
size_t N = filenames.size() * how_many;
// Do something with N random images
for (size_t i = 0; i < N; ++i)
{
// Load and show image
cv::Mat3b img = cv::imread(filenames[i]);
cv::imshow("Img", img);
cv::waitKey(1);
}
return 0;
}
çok iyi, çok teşekkürler, yardımlarınız için çok mutluyum. şimdi bana söyleyeyim, lütfen test parçası için (% 20) test bölümü için geri kalanını nasıl okuyabilirim (tren için kullanılan bir görüntü, test için kullanılmamalıdır)? lütfen – nadjet
Sadece 'N'' 'filenames.size()' dizininden görüntüler kullanın. Ve C++ nasıl çalıştığını biraz çalışmaya çalışın – Miki
çok teşekkür ederim, ben yaptım. – nadjet
- 1. OpenCV 3.0.0 MSER İkili Maskesi
- 2. Slick 3.0.0
- 3. Microsoft.AspNet.Razor 3.0.0
- 4. OpenCV 3.0'ı python
- 5. Opencv
- 6. OpenCV
- 7. OpenCV
- 8. OpenCV
- 9. OpenCV
- 10. OpenCV
- 11. opencv
- 12. OpenCV
- 13. OpenCV
- 14. Opencv
- 15. OpenCV
- 16. OpenCV
- 17. OpenCV
- 18. OpenCv
- 19. Gradle 3.0.0 alpha variant çıkış sorunu
- 20. mongodb sürüm 3.0.0 istemci robomongo mongovue
- 21. Java OpenCV - org.opencv.core.Core dikdörtgeni() yöntemi eksik
- 22. Raspberry Pi opencv 3 ve node-opencv
- 23. OpenCV OpenCV 2'de bir matris
- 24. cv :: Mat.refcount OpenCV 2.4.9 OpenCV 3.0
- 25. OpenCV FeatureDetector
- 26. Android OpenCV:
- 27. Opencv, libre'yi
- 28. OpenCV Python
- 29. OpenCV ekranında
- 30. OpenCV Bloğu
Tüm görüntülerin yolu ile dizelerin bir vektörünü almak için "glob" öğesini kullanın. Rastgele vektör karıştırın ve görüntülerin tüm isimleri – Miki
notları yüklediğimi not edin ve ben onu yüklediğimde bir dosyaya koydum ve şimdi sadece% 80'i eğitim için yüklerdim ama sadece yumruk olanları değil. – nadjet
Ben bir soru sorunum var, listemin büyüklüğünün% 80'ini ve benim eklemem gereken herhangi bir kütüphaneyi nasıl ayırt edebilirim (rastgele karışık ve yüzde için)? – nadjet