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
- vue 實現高德座標轉GPS座標Vue
- Qt - 座標系及轉換QT
- 地心地固座標系(ECEF)與站心座標系(ENU)的轉換
- ogre世界座標魚螢幕座標相互轉換
- 使用opencv畫框,標出座標OpenCV
- 利用齊次座標進行二維座標轉換
- Qt/C++地址轉座標/座標轉地址/逆地址解析/支援百度高德騰訊和天地圖QTC++地圖
- 三維座標系的旋轉矩陣矩陣
- GIS中的座標系定義與轉換 (轉)
- 座標系的生成
- 海康相機 畫素座標(px,py)到sdk ptz 座標轉換最後到onvif ptz座標
- Excel轉百度座標系(AngularJS)ExcelAngularJS
- Go版本的各座標系互相轉換的工具Go
- 火星座標和正常座標之間的轉換
- GPS座標轉換為BIM
- gps wgs4座標與高德gcj02座標互轉GC
- ArcGIS地圖投影與座標系轉換的方法地圖
- iOS地球座標、火星座標和百度座標之間轉換(Swift3.0)iOSSwift
- SVG 座標系統SVG
- ArcEngine下投影座標和經緯度座標的相互轉換
- gcoord: 轉換WGS84、GCJ02、BD09座標,轉換百度高德地圖座標系GC地圖
- 百度座標轉換API使用API
- 座標系定義和相互轉換演算法演算法
- MathNet Ray3D座標系下轉換3D
- OpenGL ES on iOS --- 座標系統與矩陣轉換iOS矩陣
- Qt 求圓和橢圓上任意角度點的座標QT
- canvas座標系原點Canvas
- canvas 座標系原點Canvas
- 螢幕座標、裝置座標以及邏輯座標的區別
- [轉] 尋找你的小說座標(之一):挑選譯本的終極攻略!
- 座標曲線的程式設計實現 (轉)程式設計
- iOS開發中常見定位座標轉換iOS