我正在使用OpenCV for Windows Phone 8.1(Windows運行時)在C++與MS開放技術https://github.com/MSOpenTech/opencv發佈。MedianBlur問題與OpenCV
該版本基於OpenCV 3,並且medianBlur函數似乎存在問題。 當我使用一個正方形的圖像,將medianBlur完美的作品,但是當我使用一個矩形圖像時,medianBlur產生奇怪的效果......
下面的結果:http://fff.azurewebsites.net/opencv.png
我使用的代碼:
// get the pixels from the WriteableBitmap
byte* pPixels = GetPointerToPixelData(m_bitmap->PixelBuffer);
int height = m_bitmap->PixelHeight;
int width = m_bitmap->PixelWidth;
// create a matrix the size and type of the image
cv::Mat mat(width, height, CV_8UC4);
memcpy(mat.data, pPixels, 4 * height*width);
cv::Mat timg(mat);
cv::medianBlur(mat, timg, 9);
cv::Mat gray0(timg.size(), CV_8U), gray;
// copy processed image back to the WriteableBitmap
memcpy(pPixels, timg.data, 4 * height*width);
// update the WriteableBitmap
m_bitmap->Invalidate();
我沒有找到問題所在......它是我的代碼中的錯誤?或OpenCV 3的錯誤?從MS開放技術的代碼?
感謝您的幫助!
哈哈,非常感謝你!它的作用就像一個魅力:D 感謝MS你的樣品與這個litle錯誤;) – Nico 2014-08-29 12:27:35
@biquette的原因可能是,在數學中存在兩個約定:矩陣公約索引:行第一。圖像約定:首先x軸。這可能與爲什麼存在兩種方式來訪問矩陣元素(用矩陣約定中的「.at」之一(行第一)和一個用於圖像約定「Point」)是相同的原因。 – Micka 2014-08-29 14:06:50
@Micka,謝謝你的解釋。 – biquette 2014-08-29 14:35:09