将二值图像转为仅含有0和1的矩阵,并将矩阵中值为0和1的所有坐标都保存在txt文件中,每行保存一个矩阵的一个(i,j)点,每个矩阵的i需要乘以2再加1,j乘以3再加2
时间: 2024-03-22 17:41:54 浏览: 66
将二值图像转为仅含有0和1的矩阵,可以将像素值大于0的点设为1,像素值等于0的点设为0,代码如下:
```python
binary_matrix = (gray > 0).astype(int)
```
将矩阵中值为0和1的所有坐标都保存在txt文件中,可以使用以下代码:
```python
with open('coordinates.txt', 'w') as f:
for i in range(binary_matrix.shape[0]):
for j in range(binary_matrix.shape[1]):
if binary_matrix[i][j] == 0 or binary_matrix[i][j] == 1:
f.write("{} {} {}\n".format(i*2+1, j*3+2, binary_matrix[i][j]))
```
这段代码会将矩阵中值为0和1的所有点的坐标和值写入一个新的txt文件中,每个坐标和值之间用空格隔开,每行保存一个点的信息。其中,每个矩阵的i坐标需要乘以2再加1,j坐标需要乘以3再加2。新生成的txt文件名可以根据需要进行修改。
相关问题
将二值图像转为仅含有0和1的矩阵,并将每个矩阵的坐标保存在txt文件中,每行保存一个矩阵的一个(i,j)点
将二值图像转为仅含有0和1的矩阵,可以将像素值大于0的点设为1,像素值等于0的点设为0,代码如下:
```python
binary_matrix = (gray > 0).astype(int)
```
将每个矩阵的坐标保存在txt文件中,可以使用以下代码:
```python
with open('coordinates.txt', 'w') as f:
for i in range(binary_matrix.shape[0]):
for j in range(binary_matrix.shape[1]):
if binary_matrix[i][j] == 1:
f.write("{} {}\n".format(i, j))
```
这段代码会将每个矩阵中值为1的点的坐标写入一个新的txt文件中,每个坐标之间用空格隔开,每行保存一个点的坐标。新生成的txt文件名可以根据需要进行修改。
MATLAB 视频处理Gamma灰度校正 对灰度图像滤波 阈值分割将图像二值化 对二值图像进行形态学处理连接目标 获得图像边框 通过边框求最小外接矩阵质心坐标总体代码实现
以下是 MATLAB 实现 Gamma 灰度校正、灰度图像滤波、阈值分割、形态学处理、获得图像边框、通过边框求最小外接矩形、质心坐标的代码:
```matlab
% 读取原始图像
img = imread('lena.jpg');
% Gamma 灰度校正
img_g = imadjust(img, [], [], 0.5); % gamma = 0.5
% 灰度图像滤波
img_f = medfilt2(img_g, [3 3]); % 中值滤波,3x3 窗口
% 阈值分割将图像二值化
img_bw = imbinarize(img_f, graythresh(img_f)); % 自适应阈值
% 形态学处理连接目标
SE = strel('disk', 5); % 5 像素半径的圆形结构元素
img_m = imclose(img_bw, SE); % 闭运算
% 获得图像边框
B = bwboundaries(img_m); % 返回二值图像中所有目标的边界
% 通过边框求最小外接矩形、质心坐标
figure;
imshow(img);
hold on;
for k = 1:length(B)
boundary = B{k};
x = boundary(:, 2);
y = boundary(:, 1);
plot(x, y, 'r', 'LineWidth', 2);
% 最小外接矩形
rectangle('Position', [min(x) min(y) max(x)-min(x) max(y)-min(y)], 'EdgeColor', 'g', 'LineWidth', 2);
% 质心坐标
center = regionprops(img_m, 'centroid');
plot(center(k).Centroid(1), center(k).Centroid(2), 'bo', 'MarkerSize', 10, 'LineWidth', 2);
end
```
注意,以上代码只适用于单目标二值图像。如果要处理多目标图像,需要使用循环来遍历每个目标的边界、最小外接矩形和质心坐标。
阅读全文