tru*_*ype 5 c# c++ colors pixels coordinates
我正在做一个奇怪的项目.我可以使用激光切割机来制作模板(金属).我可以使用坐标对机器进行编程以剪切某个图像,但我想知道的是:我怎么能编写一个程序来拍摄黑白扫描图像,并给我黑色区域的坐标?我不介意它是否给出每个像素,即使我只需要外线,我可以做那个部分.
我已经搜索了一段时间了,但是这个问题有很多单词,有很多结果,比如颜色和像素,我发现大量的信息都不相关.我想使用C++或C#,但我可以使用任何语言,包括脚本.
如果我们假设扫描的图像是全白和全黑,没有中间颜色,那么我们可以将图像作为 RGB 值的数组,并简单地扫描 0 值。如果值为 0,它一定是黑色的,对吗?但是,图像可能不会是完全黑色的,因此您需要一些回旋余地。
然后你要做的事情看起来像这样:
for(int i = 0; i < img.width; i++){
for(int j = 0; j < img.height; j++){
// 20 is an arbitrary value and subject to your opinion and need.
if(img[i][j].color <= 20)
//store i and j, those are your pixel location
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果您使用 C#,则可以轻松导入大多数图像格式,将它们粘贴到数组中并获得结果。但如果您想要更快的结果,那么使用 C++ 会更好。
该快捷方式完全依赖于非常极端的图像值。如果图像的大面积确实是灰色的,那么这种方法的准确性就很糟糕。