Bir OpenCV Mat saklanan bir giriş görüntüsünü kullanarak VLFeat kütüphanenin vl_slic_segment
işlevi kullanmak çalışıyorum. Kodum derleniyor ve çalışıyor, ancak çıkış süper piksel değerleri mantıklı değil. İşte şimdiye kadar benim kodudur: Ben Lab ColorSpace dönüştürerek ve farklı regionSize/düzene koymayı ayarı değil çalıştıkOpenCV VLFeat Dilim işlev çağrısı
Mat bgrUChar = imread("/pathtowherever/image.jpg");
Mat bgrFloat;
bgrUChar.convertTo(bgrFloat, CV_32FC3, 1.0/255);
cv::Mat labFloat;
cvtColor(bgrFloat, labFloat, CV_BGR2Lab);
Mat labels(labFloat.size(), CV_32SC1);
vl_slic_segment(labels.ptr<vl_uint32>(),labFloat.ptr<const float>(),labFloat.cols,labFloat.rows,labFloat.channels(),30,0.1,25);
ama çıkış her zaman çok glitchy. Etiket değerlerini doğru bir şekilde alabiliyorum, her şey genellikle küçük bir bitişik olmayan alanda dağılmış.
Ben sorun benim girdi verilerinin biçimi yanlış ama vl_slic_segment
işlevine uygun şekilde göndermek için nasıl anlamaya olamaz düşünüyorum.
şimdiden teşekkür ederiz!
DÜZENLEME vl_slic_segment [LLLLLAAAAABBBBB] olarak sipariş verileri istiyor, beni anlıyor yardım ederken, size David teşekkür ederiz OpenCV LAB renk alanı için verileri [LABLABLABLABLAB] sipariş oysa. Ben de VLFeat en dilim uygulaması kullanmak zorunda benim bekar tez esnasında
laboratuara 1 gibi dönüşümleri takas çalıştı ayarlı, daha sonra yüzer? afaik, cvtColor (bgrFloat, labFloat, CV_BGR2Lab); 'bir CV_8UC3 görüntüsü çıkarır, ne olursa olsun, hangi girdi, yani labFloat.ptr() 'yanlış anlayabilir –
berak
LAB renk alanı negatif değerlere izin vermiyor mu? CvtColor işlevi bir CV_32FC3 giriş değeri beslediğimde bir CV_32FC3 çıktı veriyor gibi görünüyor. Dönüşüm takas denedim ama şans yok ... – Frank
oh, tamam. O zaman yanılmışım. – berak