matlab - 将matlab上的m*n图像矩阵右移
问题描述
我目前有灰度点的 am*n 图像矩阵。我想将图像向右移动一定数量的像素。以下代码似乎将其向右和向上移动。我怎样才能解决这个问题?我需要进行某种矩阵运算来进行移位,因此内置函数将不起作用。
% Performs a shift on an input image matrix
function shift(CBout, matrix)
[m,n]=size(CBout);
T=ones(m,n)*200;
CBout = T+CBout;
plot(CBout(1,:), CBout(2,:), 'k.');
scale = 400;
axis([-scale scale -scale scale])
end
解决方案
我能够弄清楚。我只是创建一个向量,然后将其添加到 mxn 矩阵的第一行。
% Performs a shift on an input image matrix
function shift(CBout, amount)
disp('Shifting...');
n = size(CBout, 2);
T=ones(1,n)*amount;
% Add shift amount to every element in the first row
CBout = [CBout(1,:)+T; CBout(2,:)];
plot(CBout(1,:), CBout(2,:), 'k.');
scale = 400;
axis([-scale scale -scale scale])
end
推荐阅读
- javascript - JavaScript 仅计算选中的复选框
- c# - 如何使用 EF 和 linq 获取具有嵌套信息的实体
- java - 当达到匹配的数字时结束while循环
- reactjs - React/ExpressJS 中非 `then`-ing 或 `await`-ing 异步函数的含义
- android - Android Kotlin 代码运行时出现“访问隐藏字段”错误
- c++ - 在旧 C++ 编译器上的 `* const&` 中令人费解地引入了临时性
- shell - cat << EOF > ~/.zshrc 无法将原始内容转换为文件
- python - 通过 UDPSocket 从相机 pi 发送图像捕获的问题
- python - z/OS 大型机上 USS 中的 Python 代码 - 方括号无法识别
- c# - 为什么 Xero Private 应用程序不断收到消费者密钥被拒绝的错误