Uwe*_*eim 12 c# unsafe image-processing
目前我正在寻求在C#/ .NET中使用相当快速且合理准确的算法来在代码中执行以下步骤:
我已经说明了我想要实现的目标:

我能想象的是将像素的颜色设置为(0,0),然后unsafe逐行/逐列遍历所有像素直到我遇到另一种颜色的像素,然后切掉边界.
我只是担心这真的很慢.
所以我的问题是:
您是否知道任何快速算法(理想情况下没有任何第三方库)可以从内存中的图像/位图中删除"空"边框?
附注:算法应该"合理准确",而不是100%准确.像一条线太多或太少裁剪的一些公差将是好的.
增加1:
我刚刚以最简单的方式完成了我的强力算法.请参阅Pastebin.com上的代码.
如果您知道图像居中,您可以尝试沿对角线行走(即 (0,0), (1,1), ...(n,n) )直到命中,然后一次回溯一行检查直到找到一条“空”线(在每个维度中)。对于您发布的图像,它会减少很多比较。
您应该能够同时从 2 个相对的角落执行此操作,以获得一些多核操作。
当然,希望您不要遇到图像中心 1 像素宽的线的病态情况:) 或者图像中断开的对象的双重病态情况,使得整个图像居中,但没有任何东西穿过对角线。
您可以做出的一项改进是给您的“主色”一定的容差(也许可以调整?)
| 归档时间: |
|
| 查看次数: |
2175 次 |
| 最近记录: |