使用最新的OpenCV,有沒有一種簡單的方法來計算特定cv :: Mat的漸變圖像?在OpenCV中有快速簡單的方法來計算圖像的漸變嗎?
5
A
回答
14
假設您指的是典型的image gradient;您可以使用Chris提到的Sobel算子輕鬆計算這些值。查看Sobel Derivatives教程here。您可能還對Laplace運營商及其tutorial感興趣。
下面是使用計算X和Y梯度索貝爾的一小段:
cv::Mat src = ...; // Fill the input somehow.
cv::Mat Dx;
cv::Sobel(src, Dx, CV_64F, 1, 0, 3);
cv::Mat Dy;
cv::Sobel(src, Dy, CV_64F, 0, 1, 3);
0
正如MEVATRON說:索貝爾和拉普拉斯運營商強大的,但不要忘了Scharr運營商,在3×3內核上比Sobel具有更高的精度。
4
來源:http://en.wikipedia.org/wiki/Image_gradient,你可以這樣做:
IplImage * diffsizekernel(IplImage *img, int f, int c) {
float dkernel[] = {-1, 0, 1};
CvMat kernel = cvMat(f, c, CV_32FC1, dkernel);
IplImage *imgDiff = cvCreateImage(cvSize(img->width, img->height), IPL_DEPTH_16S, 1);
cvFilter2D(img, imgDiff, &kernel, cvPoint(-1,-1));
return imgDiff;
}
IplImage * diffx(IplImage *img) {
return diffsizekernel(img, 3, 1);
}
IplImage * diffy(IplImage *img) {
return diffsizekernel(img, 1, 3);
}
相關問題
- 1. 計算快速的方法來保存Matlab圖像作爲圖像(例如PNG)
- 2. CakePHP - 快速簡單的方式來生成圖像鏈接?
- 3. 快速圖像變化檢測算法
- 4. 快速傅里葉變換算法適合圖像梯度計算嗎?
- 5. 快速算法簡單的數據組
- 6. 有沒有簡單的方法在love2d中繪製漸變?
- 7. 快速的方法來計算所有頂點(與屬性x)
- 8. 簡單而快速的方法來比較圖像的相似性
- 9. 有更快的方法來計算子矩陣的總和嗎?
- 10. 快速計算卷積的方法
- 11. 快速算法來檢測圖像中的線段的傾斜
- 12. 在OpenCV中有這麼簡單的方法嗎?
- 13. 有沒有簡單的方法來計算分位數?
- 14. 快速選擇算法 - 簡單解釋
- 15. 圖像失真的快速算法
- 16. 快速的方式來加載圖像
- 17. IOS:在圖像視圖中設置圖像的快速方法
- 18. 簡單的方法來快速編輯我的網站
- 19. 快速計算圖像(或矩陣)
- 20. 快速的方法來計算條件函數
- 21. 快速簡單的方法來刪除「死」(註釋掉)代碼
- 22. 快速的方法來計算所有值出現在熊貓數據幀
- 23. 最快的方法來計算卷積
- 24. 有沒有簡單的方法來設置漸變樣式文本?
- 25. 在3D中計算漸變
- 26. 更簡單的方法來清除在VB.Net所有圖像
- 27. 在Matlab中快速的方法來計算大矩陣的倒數10800x10800?
- 28. fft(快速傅立葉變換)來加速python中的opencv?
- 29. 簡單的方法來衡量局域網計算機的LAN網絡速度?
- 30. 簡單的兩種顏色漸變效果沒有圖像?
樣本圖像,和預期的結果將是很好。 – Sonaten 2011-12-14 16:10:14