在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在用c++代码复现matlab代码时,遇到两者resize函数的结果不相同的问题。 opencv: resize(image1, reTmp, Size(50, 50), 0, 0, cv::INTER_LINEAR); matlab: tmp=imresize(img,[50 50],'bilinear','AntiAliasing',false); 以一张500×396的彩色图片为例,resize到(50,50):
matlab imresize代码: img=imread('image/cluo.jpg'); img=single(img); for i=1:10 fprintf('%.6f ',img(1,i,1)); end fprintf('\n'); tmp=imresize(img,[50 50],'bilinear','AntiAliasing',false); for i=1:10 fprintf('%.6f ',tmp(1,i,1)); end c++ resize代码: #include <opencv2\opencv.hpp> #include <iostream> using namespace cv; using namespace std; void main() { Mat image = imread("cluo.jpg"); 结果比较: 结果基本相同 matlab中默认的 tmp=imresize(img,[50 50],'bilinear'); 函数是打开了抗锯齿 结果和opencv中的INTER_LINEAR不相同
matlab 和 opencv中 nearest 方式的结果比较: c++: resize(image1, reTmp, Size(50, 50), 0, 0, cv::INTER_NEAREST); matlab: tmp=imresize(img,[50 50],'nearest'); matlab: tmp=imresize(img,[50 50],'nearest','AntiAliasing',false); 结果不相同
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论