center = [size((round(rotated_img, 2)/2, size(rotated_img, 1)/2];这样用round的吗
时间: 2024-03-18 16:41:50 浏览: 23
不是的,您这里的使用方法有误。round() 函数是将数值四舍五入为最接近的整数,而不是将坐标调整为最接近的整数坐标。
如果您想将旋转后图片的中心坐标调整为整数坐标,可以使用 floor() 函数。floor() 函数可以向下取整为最接近的整数。调整代码如下:
```
center = [floor(size(rotated_img, 2)/2), floor(size(rotated_img, 1)/2)];
```
这样可以将中心坐标调整为最接近的整数坐标,保证图像位置的正确性。
相关问题
[rows, cols, ~] = size(rotated_img);这句话啥意思
这句话是用来获取旋转后图像的尺寸的,其中size(rotated_img)返回一个三元素的向量,包含旋转后图像的行数、列数和通道数。
在MATLAB中,图像通常是三维矩阵,其中第一维表示图像的行数、第二维表示图像的列数,第三维表示图像的通道数。而在本例中,由于我们不需要使用到图像的通道数(即RGB三个通道),所以使用“~”来表示忽略通道数的值。
因此,[rows, cols, ~] = size(rotated_img)这句话的作用是将旋转后图像的行数赋值给变量rows、将列数赋值给变量cols,而通道数则被忽略。
img = imread('image.jpg'); % 将图像转换为灰度图 gray_img = rgb2gray(img); % 将图像旋转1度 rotated_img = imrotate(gray_img, 1, 'bilinear', 'crop'); % 获取旋转后的图像大小 [h, w] = size(rotated_img); % 定义结果向量 col_sum = zeros(1, w); % 计算每列像素值之和 for i = 1:w col_sum(i) = sum(rotated_img(:, i)); end % 显示结果 disp(col_sum); % 画出col_sum的图像 plot(col_sum); xlabel('列数'); ylabel('像素值之和');上面代码补上每隔1°连续旋到180° 的值输出到一个和坐标是角度,纵坐标是各列像素值的总和的矩阵中并画出来
好的,以下是 MATLAB 代码实现:
```matlab
img = imread('image.jpg'); % 将图像转换为灰度图
gray_img = rgb2gray(img);
[h, w] = size(gray_img); % 获取原图像大小
matrix = zeros(180, w); % 定义结果矩阵
for angle = 1:180
rotated_img = imrotate(gray_img, angle-1, 'bilinear', 'crop'); % 将图像旋转1度
col_sum = sum(rotated_img); % 计算每列像素值之和
matrix(angle, :) = col_sum; % 存储结果
end
% 显示结果矩阵
figure;imshow(matrix, []);xlabel('列数');ylabel('角度');
% 画出某一列的像素值之和随角度变化的曲线
col_num = 100; % 选择第100列
plot(1:180, matrix(:, col_num));
xlabel('角度');ylabel('像素值之和');
```
解释一下,首先读入一张图片并将其转为灰度图,然后定义一个180行、宽度为原图宽度的全零矩阵,用于存储每个角度下各列像素值的总和。然后循环180次,每次将图像旋转1度,并计算出旋转后各列像素值的总和,并将其存入矩阵中。最后使用 `imshow` 函数将结果矩阵可视化,并使用 `plot` 函数画出某一列的像素值之和随角度变化的曲线。
需要注意的是,MATLAB 中的 `imrotate` 函数将角度作为输入参数,而不是弧度。所以在循环中,需要将角度减1作为 `imrotate` 函数的输入参数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.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)