图像处理做相同质心的等面积圆MATLAB代码
时间: 2024-01-10 17:03:55 浏览: 37
以下是MATLAB代码实现相同质心的等面积圆:
```matlab
% 定义图像大小和质心坐标
img_size = 256;
center_x = img_size/2;
center_y = img_size/2;
% 定义圆面积和半径
circle_area = 1000;
circle_radius = sqrt(circle_area/pi);
% 初始化图像和质心坐标
img = zeros(img_size, img_size);
sum_x = 0;
sum_y = 0;
% 遍历图像像素点
for i = 1:img_size
for j = 1:img_size
% 计算当前像素点到图像中心的距离
dist = sqrt((i - center_x)^2 + (j - center_y)^2);
% 判断当前像素点是否在圆内
if dist <= circle_radius
% 在圆内,将像素点值设为1
img(i, j) = 1;
% 累加坐标值
sum_x = sum_x + i;
sum_y = sum_y + j;
end
end
end
% 计算质心坐标
centroid_x = round(sum_x / circle_area);
centroid_y = round(sum_y / circle_area);
% 绘制等面积圆和质心点
imshow(img);
hold on;
viscircles([centroid_x centroid_y], circle_radius, 'Color', 'r');
plot(centroid_y, centroid_x, 'r+', 'MarkerSize', 10, 'LineWidth', 2);
hold off;
```
在代码中,我们首先定义了图像大小和圆的面积,然后计算出圆的半径。接着,我们遍历图像所有像素点,判断每个像素点是否在圆内,并将在圆内的像素点值设为1。同时,我们累加每个像素点的坐标值,以便计算质心坐标。最后,我们根据计算出的质心坐标和圆半径绘制等面积圆和质心点。
相关推荐
![](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)