C++ opencv的圓轉矩形,極座標轉笛卡爾座標系
先上效果圖
原圖
轉換後:
程式碼
引數說明:源圖、目標圖,目標圖高度、目標圖寬度
bool polar_to_cartesian(cv::Mat& mat_p, cv::Mat& mat_c, int rows_c, int cols_c)
{
mat_c = cv::Mat::zeros(rows_c, cols_c, CV_8UC1);
int polar_d = mat_p.cols;
double polar_r = polar_d / 2.0; // 圓圖半徑
double delta_r = polar_r / rows_c; //半徑因子
double delta_t = 2.0*PI / cols_c; //角度因子
double center_polar_x = (polar_d - 1) / 2.0;
double center_polar_y = (polar_d - 1) / 2.0;
for (int i = 0; i < cols_c; i++)
{
double theta_p = i * delta_t; //方圖第i列在圓圖對應線的角度
double sin_theta = std::sin(theta_p);
double cos_theta = std::cos(theta_p);
for (int j = 0; j < rows_c; j++)
{
double temp_r = j * delta_r; //方圖第j行在圓圖上對應的半徑長度
int polar_x = (int)(center_polar_x + temp_r * cos_theta);
int polar_y = (int)(center_polar_y - temp_r * sin_theta);
mat_c.ptr<uchar>(j)[i] = mat_p.ptr<uchar>(polar_y)[polar_x];
}
}
return true;
}
相關文章
- 形象化理解笛卡爾座標系和極座標系
- 流體力學守恆形式Euler方程(笛卡爾座標、柱座標、球座標)
- 笛卡爾座標張量簡介7
- C++ OpenCv二值化找圓心座標C++OpenCV
- canvas-座標系、圓角矩形、紋理、剪裁Canvas
- 張正友標定Opencv實現、標定流程以及影像座標轉為世界座標OpenCV
- Qt - 座標系及轉換QT
- vue 實現高德座標轉GPS座標Vue
- 地心地固座標系(ECEF)與站心座標系(ENU)的轉換
- 利用齊次座標進行二維座標轉換
- Excel轉百度座標系(AngularJS)ExcelAngularJS
- 使用opencv畫框,標出座標OpenCV
- GPS座標轉換為BIM
- Qt/C++地址轉座標/座標轉地址/逆地址解析/支援百度高德騰訊和天地圖QTC++地圖
- 座標系
- 海康相機 畫素座標(px,py)到sdk ptz 座標轉換最後到onvif ptz座標
- gps wgs4座標與高德gcj02座標互轉GC
- Go版本的各座標系互相轉換的工具Go
- ArcGIS地圖投影與座標系轉換的方法地圖
- MathNet Ray3D座標系下轉換3D
- 座標系的生成
- Python pytorch 座標系變換與維度轉換PythonPyTorch
- 座標系定義和相互轉換演算法演算法
- SVG 座標系統SVG
- iOS開發中常見定位座標轉換iOS
- 三維空間座標系變換-旋轉矩陣矩陣
- 三維座標系旋轉——旋轉矩陣到旋轉角之間的換算矩陣
- Threejs的三維座標系JS
- AUTOCAD——座標標註
- 各種座標系互相轉換(WGS84轉換BD-09主要)
- canvas 座標系原點Canvas
- canvas座標系原點Canvas
- Qt 求圓和橢圓上任意角度點的座標QT
- ROS TF :使用 TF 設定機器人 釋出座標變換 使用座標變換 將感測器資料轉換為機器人座標系下ROS機器人
- MoseEvent 中的幾種座標系
- WebGL座標系的小祕密Web
- 物體物件在螢幕中的座標及滑鼠座標物件
- 工程座標轉換方法C#程式碼實現C#