在项目中发现一个问题,设备现场应用时,根据环境(如手术室)空间等因素导致床位不是按照指定顺序放置,平板探测器出的图像可能并非正向,这就要涉及到对图像进行镜像或旋转的操作,以适应床位的方向不同,在探测器回调的raw图像上进行图像调整,避免影响到软件其他方面的后处理。很简单的处理,水一贴。
所谓镜像就是看镜子里面的自己就可以好理解了。
左右镜像其实就是图像中轴线左部分距中轴线相同距离像素和右部分距中轴线相同距离像素调换;
同理上下镜像 图像中轴线上部分距中轴线相同距离像素和下部分距中轴线相同距离像素调换;
旋转180,相应的180度角位置像素替换;
以16位灰度图像举例:
class SimpleAlgorithm
{
public:
SimpleAlgorithm();
~SimpleAlgorithm();
static void FlipX(unsigned short *ImageBuffer, int imageWith, int imageHeight);
static void FlipY(unsigned short *ImageBuffer, int imageWith, int imageHeight);
//X+Y
static void Flip(unsigned short *ImageBuffer, int imageWith, int imageHeight);
static void Flip180(unsigned short *ImageBuffer, int imageWith