图片旋转后中心的坐标在变化,每次取中心左右的100个像素,并把图片各行的像素值累加存起来,用matlab来写
时间: 2024-03-15 09:46:05 浏览: 17
好的,下面是一种可能的 Matlab 实现方式:
```matlab
% 读取原始图片
img = imread('filename.jpg');
% 旋转角度(顺时针方向为正)
angle = 30;
% 旋转后图片的中心坐标
center = [size(img, 2)/2, size(img, 1)/2];
rot = [cosd(angle), -sind(angle); sind(angle), cosd(angle)];
new_center = center * rot;
% 取中心左右的100个像素
left = round(new_center(1)) - 100;
right = round(new_center(1)) + 100;
% 累加各行的像素值
sum_pixels = zeros(size(img, 1), right - left + 1);
for i = 1:size(img, 1)
row_pixels = img(i, left:right);
sum_pixels(i, :) = cumsum(row_pixels);
end
```
这段代码中,`imread` 函数用于读取原始图片,`angle` 表示旋转角度,`center` 表示原始图片的中心坐标,`rot` 表示旋转矩阵,`new_center` 表示旋转后图片的中心坐标。接着,我们根据旋转后的中心坐标,取中心左右的 100 个像素,并对每一行的像素值进行累加,最终得到一个大小为 `(height, 201)` 的矩阵 `sum_pixels`,其中 `height` 表示原始图片的高度。注意,这里使用了 `cumsum` 函数对每一行像素值进行累加,以便于后续处理。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)