- 操作系統:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
矩陣除以標量。
該函數 divC 將矩陣 src 的每個元素除以給定的標量值:
dst(I) = saturate(src(I)*scale/divisor) \texttt{dst(I) = saturate(src(I)*scale/divisor)} dst(I)?=?saturate(src(I)*scale/divisor)
當除數為零時,dst(I) 也將為零。多通道矩陣的不同通道獨立處理。矩陣可以是單通道或多通道。輸出矩陣必須與 src 具有相同的大小和深度。
支持的矩陣數據類型為 CV_8UC1, CV_8UC3, CV_16UC1, CV_16SC1, CV_32FC1。
注意
函數文本ID是 “org.opencv.core.math.divC”。
函數原型
GMat cv::gapi::divC
(const GMat & src,const GScalar & divisor,double scale,int ddepth = -1
)
參數
- 參數src:輸入矩陣。
- 參數divisor:要除以的數。
- 參數ddepth:輸出矩陣的可選深度。如果為 -1,則輸出矩陣的深度將與輸入矩陣的深度相同。
- 參數scale:縮放因子。
代碼示例
#include <iostream>
#include <opencv2/gapi/core.hpp> // 包含G-API核心功能
#include <opencv2/opencv.hpp>int main()
{// 創建示例數據cv::Mat src = ( cv::Mat_< float >( 2, 2 ) << 4.0f, 8.0f, 16.0f, 32.0f );cv::Scalar divisor( 2.0 ); // 標量除數double scale = 1.0; // 縮放因子// 檢查輸入矩陣是否為空if ( src.empty() ){std::cerr << "無法加載輸入矩陣,請檢查數據。" << std::endl;return -1;}// 定義G-API圖中的輸入cv::GMat gsrc;cv::GScalar gdivisor( divisor );int ddepth = -1; // 使用默認深度// 執行除法操作auto gdst = cv::gapi::divC( gsrc, gdivisor, scale, ddepth );// 創建一個計算圖cv::GComputation div_graph( cv::GIn( gsrc ), cv::GOut( gdst ) );// 輸出矩陣cv::Mat result;// 編譯并執行計算圖div_graph.apply( cv::gin( src ), cv::gout( result ) );// 打印結果std::cout << "Result: \n" << result << std::endl;return 0;
}
運行結果
Result:
[2, 4;8, 16]