體育類網(wǎng)站 設(shè)計百度下載2022新版安裝
- 操作系統(tǒng):ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
cv::textureFlattening 是 OpenCV 中用于圖像處理的一個函數(shù),旨在平滑圖像中的紋理區(qū)域,同時保留邊緣信息。該技術(shù)特別適用于需要減少圖像中噪聲或不需要的細節(jié),但又想保持重要特征(如邊緣)的應(yīng)用場景。
通過僅保留邊緣位置處的梯度,然后與泊松求解器集成,可以清除選定區(qū)域的紋理,使其內(nèi)容呈現(xiàn)平坦的外觀。這里使用了Canny邊緣檢測器。
函數(shù)原型
void cv::textureFlattening
(InputArray src,InputArray mask,OutputArray dst,float low_threshold = 30,float high_threshold = 45,int kernel_size = 3
)
參數(shù)
- 參數(shù)src 輸入8位3通道圖像。
- 參數(shù) mask 輸入8位1或3通道圖像。
- 參數(shù) dst 輸出圖像,與src具有相同的大小和類型。
- 參數(shù) low_threshold 范圍從0到100。
- 參數(shù) high_threshold 值大于100。
- 參數(shù) kernel_size 使用的Sobel核的大小。
代碼示例
#include <iostream>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace std;int main()
{// 加載輸入圖像Mat src = imread( "/media/dingxin/data/study/OpenCV/sources/images/jiangnan.jpg" );if ( src.empty() ){cout << "無法加載圖像,請檢查文件名和路徑。\n";return -1;}// 創(chuàng)建一個掩模,選擇整個圖像進行處理Mat mask = Mat::ones( src.size(), CV_8UC1 ) * 255;// 輸出圖像Mat dst;// 應(yīng)用紋理平整化textureFlattening( src, mask, dst );// 顯示結(jié)果imshow( "Original Image", src );imshow( "Processed Image", dst );waitKey( 0 );return 0;
}