我必须将这段代码从Matlab翻译成C:
% take off the pads
x = (1 + padSize) : (rows - pad8Size);
y = (1 + padSize) : (cols - padSize);
rpad=rpad(x,y);第一个和第二个创建2数组,但我不知道如何从rpad Mat对象中删除它,它可以是这样的(减去每个元素)
for(int i=1+pad;i<=rows-pad;i++){
for(int j=1+pad;i<=cols-pad;j++){
subtract(rpad,x,rpad);
subtract(rpad,y,rpad);}}或者类似于(删除外部元素)
int a=(rows-pad)-(1+pad);
int b=(cols-pad)-(1+pad);
rpad.create(img.rows - a,img.cols - b,original.type());
img.copyTo(rpad);发布于 2013-05-30 01:12:36
试一试
cv::Rect roi(padSize, padSize, rpad.cols-2*padSize, rpad.rows-2*padSize);
cv::Mat result = rpad(roi);根据您是否需要连续内存,您可以选择直接使用result (不连续,对于大多数OpenCV函数通常都是可以的)或将其复制回rpad (连续)
发布于 2013-05-30 04:07:27
是否可以将一个Mat对象与一个二维数组相乘?Imfft显然是Mat对象
for (int i = 0; i < rows; i++){
for (int j = 0; j < cols; j++){
imfft=imfft*filter[i][j]
}
}https://stackoverflow.com/questions/16812516
复制相似问题