pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

MATLAB vs C++ vs OpenCV - imresize

MATLAB vs C++ vs OpenCV - imresize(MATLAB vs C++ vs OpenCV - imresize)
本文介紹了MATLAB vs C++ vs OpenCV - imresize的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有以下 MATLAB 代碼,我想將其傳輸到 C++

I have the following MATLAB code which I want to transport into C++

假設 Gr 是二維矩陣并且 1/newscale == 0.5

Assume Gr is 2d matrix and 1/newscale == 0.5

Gr = imresize(Gr, 1 / newScale);

在 MATLAB 文檔中:

B = imresize(A, scale) 返回圖像 B 的縮放倍數A. 輸入圖像 A 可以是灰度、RGB 或二值圖像.如果scale 在 0 到 1.0 之間,B 小于 A.如果 scale 更大小于 1.0,B 大于 A.

B = imresize(A, scale) returns image B that is scale times the size of A. The input image A can be a grayscale, RGB, or binary image. If scale is between 0 and 1.0, B is smaller than A. If scale is greater than 1.0, B is larger than A.

所以這意味著我將得到一個二維矩陣 == matrix_width/2 和 matrix_height/2
我如何計算這些值?根據文檔的默認值來自最近 4X4 的三次插值.

So this means I will get a 2D matrix == matrix_width/2 and matrix_height/2
How do I calculate the values? The default according to the docs are coming from cubic interpolation for nearest 4X4.

我找不到執行相同操作的 C++ 示例代碼.能否提供此類代碼的鏈接?

I can't find a sample code for C++ that does the same. Can you please provide a link to such code?

我還發現 這個 OpenCV 函數,resize.

它和 MATLAB 的功能一樣嗎?

Does it do the same as the MATLAB one?

推薦答案

是的,請注意 MATLAB 的 imresize 有 默認啟用抗鋸齒:

Yes, just be aware that MATLAB's imresize has anti-aliasing enabled by default:

imresize(A,scale,'bilinear')

對比你會用 cv::resize() 得到什么,它沒有抗鋸齒:

vs. what you would get with cv::resize(), which does not have anti-aliasing:

imresize(A,scale,'bilinear','AntiAliasing',false)

正如 Amro 提到的,MATLAB 中的默認值是 bicubic,所以一定要指定.

And as Amro mentioned, the default in MATLAB is bicubic, so be sure to specify.

無需修改代碼即可通過雙線性插值獲得匹配結果.

No code modifications are necessary to get matching results with bilinear interpolation.

示例 OpenCV 代碼段:

Example OpenCV snippet:

cv::Mat src(4, 4, CV_32F);
for (int i = 0; i < 16; ++i)
    src.at<float>(i) = i;

std::cout << src << std::endl;

cv::Mat dst;
cv::resize(src, dst, Size(0, 0), 0.5, 0.5, INTER_LINEAR);

std::cout << dst << std::endl;

輸出 (OpenCV)

[0, 1, 2, 3;
  4, 5, 6, 7;
  8, 9, 10, 11;
  12, 13, 14, 15]

[2.5, 4.5;
  10.5, 12.5]

MATLAB

>> M = reshape(0:15,4,4).';
>> imresize(M,0.5,'bilinear','AntiAliasing',true)
ans =
                     3.125                     4.875
                    10.125                    11.875
>> imresize(M,0.5,'bilinear','AntiAliasing',false)
ans =
                       2.5                       4.5
                      10.5                      12.5

請注意,關閉抗鋸齒后的結果是一樣的.

Note that the results are the same with anti-aliasing turned off.

然而,在'bicubic'INTER_CUBIC 之間,由于權重方案的原因,結果是不同的!參見此處,了解數學差異的詳細信息.問題出在計算三次插值系數的 interpolateCubic() 函數中,其中使用常數 a = -0.75 而不是 a = -0.5 就像在 MATLAB 中一樣.但是,如果您編輯 imgwarp.cpp 并更改代碼:

However, between 'bicubic' and INTER_CUBIC, the results are different on account of the weighting scheme! See here for details on the mathematical difference. The issue is in the interpolateCubic() function that computes the cubic interpolant's coefficients, where a constant of a = -0.75 is used rather than a = -0.5 like in MATLAB. However, if you edit imgwarp.cpp and change the code :

static inline void interpolateCubic( float x, float* coeffs )
{
    const float A = -0.75f;
    ...

到:

static inline void interpolateCubic( float x, float* coeffs )
{
    const float A = -0.50f;
    ...

并重建 OpenCV(提示:禁用 CUDA 和 gpu 模塊以縮短編譯時間),然后您會得到相同的結果:

and rebuild OpenCV (tip: disable CUDA and the gpu module for short compile time), then you get the same results:

MATLAB

>> imresize(M,0.5,'bicubic','AntiAliasing',false)
ans =
                    2.1875                    4.3125
                   10.6875                   12.8125

OpenCV

[0, 1, 2, 3;
  4, 5, 6, 7;
  8, 9, 10, 11;
  12, 13, 14, 15]
[2.1875, 4.3125;
  10.6875, 12.8125]

更多關于立方這里.

這篇關于MATLAB vs C++ vs OpenCV - imresize的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: 翅片管散热器价格_钢制暖气片报价_钢制板式散热器厂家「河北冀春暖气片有限公司」 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 单螺旋速冻机-双螺旋-流态化-隧道式-食品速冻机厂家-广州冰泉制冷 | 生物除臭剂-除味剂-植物-污水除臭剂厂家-携葵环保有限公司 | 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 楼承板-开口楼承板-闭口楼承板-无锡海逵 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 电加热导热油炉-空气加热器-导热油加热器-翅片电加热管-科安达机械 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 | 会议会展活动拍摄_年会庆典演出跟拍_摄影摄像直播-艾木传媒 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 铁艺,仿竹,竹节,护栏,围栏,篱笆,栅栏,栏杆,护栏网,网围栏,厂家 - 河北稳重金属丝网制品有限公司 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 铝合金脚手架厂家-专注高空作业平台-深圳腾达安全科技 | 打包箱房_集成房屋-山东佳一集成房屋有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 脑钠肽-白介素4|白介素8试剂盒-研域(上海)化学试剂有限公司 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 离子色谱自动进样器-青岛艾力析实验科技有限公司 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 温州在线网 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 万烁建筑设计院-建筑设计公司加盟,设计院加盟分公司,市政设计加盟 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 |