找回密码
 立即注册

QQ登录

只需一步,快速开始

Twang

最新发帖
Twang
高级会员   /  发表于:2015-9-8 14:20:00
11#
回复 10楼iceman的帖子

存在数组中分别搜索,能两个以上区域一起搜索当然好,请问该怎么做呢?一下是我在数组中分别搜索的代码,该怎么修改?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Twang
高级会员   /  发表于:2015-9-8 16:37:00
12#
回复 11楼Twang的帖子

兄弟,怎么样啊,急呢???
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-8 18:30:00
13#
回复 12楼Twang的帖子

兄弟不好意思,一直在给你调试程序。

关键代码如下:
  1. private void button1_Click(object sender, EventArgs e)
  2.         {

  3.             //LeadRect rc_cor = new LeadRect(0, 0, beforePic.Image.Width, beforePic.Image.Height);

  4. //创建搜索目标区域
  5.             LeadRect[] rc_cor = new LeadRect[2];
  6.             rc_cor[0] = new LeadRect(14, 24, 22, 30);
  7.             rc_cor[1] = new LeadRect(14, 222, 60, 37);



  8.             for (int i = 0; i < rc_cor.Length; i++)
  9.             {
  10. //添加区域到右侧图片浏览器
  11.                 afterPic.Image.AddRectangleToRegion(null, rc_cor[i], RasterRegionCombineMode.Set);
  12. //根据右侧图片区域克隆图片,赋值给左侧图片浏览器
  13.                 beforePic.Image = afterPic.Image.Clone(rc_cor[i]);
  14.                 afterPic.Image.MakeRegionEmpty();
  15. //CorrelationCommand 用于搜索图片
  16.                 CorrelationCommand cmd = new CorrelationCommand();
  17.                 cmd.CorrelationImage = beforePic.Image.Clone();
  18.                 cmd.Points = new LeadPoint[90];
  19.                 cmd.Threshold = Convert.ToInt32(this.txtThreshold.Text);
  20.                 cmd.XStep = 2;
  21.                 cmd.YStep = 1;
  22.                 cmd.Run(afterPic.Image);
  23.                 //afterPic.Image.MakeRegionEmpty();
  24.                 LogicalSize size = new LogicalSize(Convert.ToDouble(beforePic.Image.ImageWidth), Convert.ToDouble(beforePic.Image.ImageHeight), LogicalUnit.Pixel);
  25. //此处用户绘制图片搜索结果,背景色
  26.                 for (int i_cor = 0; i_cor < cmd.NumberOfPoints; i_cor++)
  27.                 {

  28.                     rc_cor[i] = new LeadRect(cmd.Points[i_cor].X, cmd.Points[i_cor].Y, beforePic.Image.Width, beforePic.Image.Height);
  29.                     LogicalPoint logPt = new LogicalPoint(cmd.Points[i_cor]);
  30.                     DrawRect(new LogicalRectangle(logPt, size), Color.Red, true);
  31.                 }
  32.                 afterPic.Refresh();
  33.             }
  34.         }
复制代码


Demo:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Twang
高级会员   /  发表于:2015-9-9 09:09:00
14#
回复 13楼iceman的帖子

多谢多谢啊!!!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-9 09:37:00
15#
回复 14楼Twang的帖子

请问问题解决了没?
回复 使用道具 举报
Twang
高级会员   /  发表于:2015-9-9 09:46:00
16#
回复 15楼iceman的帖子

你好,还在看,能给代码加些注释吗?我好在此基础上修改以达到我期许的效果,现在看的很吃力呢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-9 10:35:00
17#
回复 16楼Twang的帖子

关键代码已经添加,请查看
回复 使用道具 举报
Twang
高级会员   /  发表于:2015-9-9 11:13:00
18#
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-9 11:22:00
19#
回复 18楼Twang的帖子

怎么样,修改成功了吗?
回复 使用道具 举报
Twang
高级会员   /  发表于:2015-9-9 13:38:00
20#
回复 19楼iceman的帖子

我想在你们官网博客的基础上是实现的效果如下:左侧(beforePic)分别选定两个区域(他们不相连),然后在右侧(afterPic)查找出与左侧选定区域内相同的内容。我有运行你的这个demo,但没看明白它的意思。这次代码麻烦注释仔细一点儿ok?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部