Bu kod, son satıra kadar iyi çalışıyor. Diskte doğru görüntüyü kaydeder ancak işlevden çıktıktan sonra bir "bellek sızıntısı" gösterir - yığın bozulması. Mat'ın açıkça serbest bırakılması gerekmediğini okudum. Benim durumumda, hem serbest bırakma hem de serbest bırakma ile çöküyor. Lütfen yardım et. Sana sadece biraz destek verebilir bu küçük bilgi ama gerçek çözümü ileyığın bozulması hatası; cv yayınlayamıyorum :: Mat opencv
void CannyEdgeDetectionFilter::applyFilter(Mat& mat, Mat& mixedBandsMat)
{
//Mat mixedBandsMat;
vector<Mat> bandWiseImages;
split(mat, bandWiseImages);
//! Evaluate numChannels to be filtered in the input image
int numChannels = mat.channels();
int type = mat.type();
//! Multiplied by 8 to get bits from Bytes
int singleChannelDepth = 8*mat.elemSize1();
for (int i = 0; i < numChannels; i++)
{
Canny(bandWiseImages[i], bandWiseImages[i], m_LowerThreshold,
m_UpperThreshold, m_Kernel.rows);
}
//! Creating filteredImgMat in order to set DataValues
mixedBandsMat.create(mat.rows, mat.cols, mat.type());
//! Unifying the channels back to the output image
merge(bandWiseImages, mixedBandsMat);
#if 1
//Release bandWiseImages Mat memory
int bandWiseVecSize = bandWiseImages.size();
for(int i = 0; i < bandWiseVecSize; i++)
bandWiseImages[i].release();
bandWiseImages.clear();
//fromTo.clear();
#endif
imwrite("D:\\testAfterCannyEdgeDetetionFilter.jpg", mixedBandsMat);
mixedBandsMat.release();
}
Yığın yolsuzluğunu nasıl tespit edersiniz, bunun için hangi programı kullanıyorsunuz? sadece merak ediyor ... – penelope
Bellek sızıntısı mı gösteriyor, yoksa çöküyor mu? – juanchopanza
Görsel stüdyo 2008 üzerinde çalışıyorum. İşlevden çıkarken kod çöküyor. – user1412066