我有一张1278 X 958像素大小的图片,需要进行一些图像处理。
由于图片尺寸较大,在pictureBox中加载时使用以下命令:
imGrayShow = cap.QueryGrayFrame();
picBOriginal.Image = imGrayShow.ToBitmap();
pictureBox的尺寸为299 X 204,而我想在其中查看我的原始图片,于是我使用了pictureBox Size Mode=StretchImage
故事从这里开始:
我想使用鼠标按下和鼠标释放事件来获得用户选择区域的位置,命令如下:
private void picBOriginal_MouseUp(object sender, MouseEventArgs e)
{
if (stopEventMouseDrag == true)
{
endP = e.Location;
if (startP != endP)
{
stopEventMouseDrag = false;
}
}
}
private void picBOriginal_MouseDown(object sender, MouseEventArgs e)
{
if (stopEventMouseDrag == true)
{
startP = e.Location;
}
}
我得到的 startP 和 endP 是分别为 (145,2) 和 (295,83),但这些是在 pictureBox 上鼠标的位置,而我希望找到鼠标在原始图像中按下时的真实位置(即: startP: 890,1 endP: 1277,879)。如何才能获得在原始图像中的 startP-endP 的真实位置呢?