如何在图片框中缩小图片而不影响协调?

时间:2018-11-12 09:09:43

标签: c# image-processing ocr image-zoom

我想让用户定义他们要提取文本的区域,但是对于订单项来说,图片太大了,这使矩形不能包含整个表格。

我找到了一种解决方案,可以缩小图片,但坐标也发生了变化。例如,我在“ Malarvili”处绘制了矩形区域,但是矩形坐标与我绘制的坐标不同。因此,提取的文本是错误的。
Example 1

所以我想知道任何解决方案,以使图片在图片框中变小而不影响原始矩形坐标吗?或者使用我的原始解决方案,即不改变图片大小而使用“自动调整大小”,但是我也遇到了一个问题,即当我向右绘制矩形时,滚动条将不会自动滚动,这使我无法将矩形绘制为右边的尽头。
My current solution but the scrollbar will not auto scroll to right when the mouse is moving to right

有解决这些问题的解决方案吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以计算调整大小的图像(使用pictureBox模式的StretchImage)和原始图像之间的比率(x和y轴),然后从您所获得的矩形中计算出原始图像的矩形使用这些比率在pictureBox中绘制。

pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
ratio_X = (double) pictureBox.Width/original_image;
ratio_Y = (double) pictureBox.Height/original_image;

//suppose you have the rect drawed in the pictureBox: pictureBox_rect
//now make a rect for original_image
Rectangle original_rect = new Rect((int)pictureBox_rect.X * ratio_X, 
                                   (int)pictureBox_rect.Y * ratio_Y, 
                                   (int)pictureBox_rect.Width * ratio_X, 
                                   (int)pictureBox_rect.Height * ratio_Y)