for (auto it : m_pts) { for (int nRow = it.y(); nRow < it.y()+4; nRow++) { for (int nCol = it.x(); nCol < it.x()+4; nCol++) { ImgBin.row(nRow).data[nCol] = 255; } } }这个函数将点集遍历,但我只想让我点下的点设为白色,该如何修改
时间: 2024-03-28 22:41:44 浏览: 108
PAPR-for-OFDM.rar_PTS SLM PAPR_SLM PTS_pts_pts PAPR_限幅
5星 · 资源好评率100%
如果你只想让点集中的点设为白色,可以使用以下代码:
```c++
for (auto it : m_pts) {
ImgBin.row(it.y()).data[it.x()] = 255;
}
```
这将只在每个点的位置上将像素设置为白色。如果你想要将每个点周围的 4x4 区域都设置为白色,可以使用以下代码:
```c++
for (auto it : m_pts) {
for (int nRow = it.y(); nRow < it.y()+4; nRow++) {
for (int nCol = it.x(); nCol < it.x()+4; nCol++) {
if (nRow >= 0 && nRow < ImgBin.rows && nCol >= 0 && nCol < ImgBin.cols) {
ImgBin.row(nRow).data[nCol] = 255;
}
}
}
}
```
这将在每个点的周围 4x4 区域内将像素设置为白色。需要注意的是,如果点集中的某个点位于图像边界上,那么周围的某些像素可能不在图像范围内,因此需要添加判断语句来避免访问越界。
阅读全文