image-processing - prolog中为图像处理API构建的代码应该做哪些更改
问题描述
我一直在尝试构建一个图像处理 API 来使用 prolog 调用 CImg 库函数。但是我在代码中收到有关运算符和模块的错误。
我看到一些参考文献提到可以通过插入句点(。)符号来消除此错误,但结果没有显示任何改进。
:- module(getting_started, []).
:- use_module(library(filesex)).
:- initialization.example.
example:-
module_property(getting_started,file(ModuleFile)),
file_directory_name(ModuleFile,ModuleDir),
directory_file_path(ModuleDir, 'img/milla.bmp', Milla),
cImg:new(Milla,Image),
cImg:new(500,400,1,3,0,Visu),
cImg:blur(Image,2.5),
cImgDisplay:new(Image,"Click a point",Main_disp),
cImgDisplay:new(Visu,"Intensity profile",Draw_disp),
loop(Image,Visu,Main_disp,Draw_disp).
loop(_,_,Main_disp,Draw_disp) :-
( cImgDisplay:is_closed(Main_disp) ; cImgDisplay:is_closed(Draw_disp) ), !.
loop(Image,Visu,Main_disp,Draw_disp) :-
cImgDisplay:wait(Main_disp),
( cImgDisplay:button(Main_disp,1)
-> cImgDisplay:mouse_y(Main_disp,Y),
( Y >= 0
-> cImg:width(Image,W), W1 is W-1,
Red = [ 255,0,0 ], Green = [ 0,255,0 ], Blue = [ 0,0,255 ],
cImg:get_crop(Image,[0,Y,0,0,W1,Y,0,0],CropR),
cImg:get_crop(Image,[0,Y,0,1,W1,Y,0,1],CropG),
cImg:get_crop(Image,[0,Y,0,2,W1,Y,0,2],CropB),
cImg:fill(Visu,0),
cImg:draw_graph(Visu,CropR,Red,1,1,0,255,0),
cImg:draw_graph(Visu,CropG,Green,1,1,0,255,0),
cImg:draw_graph(Visu,CropB,Blue,1,1,0,255,0),
cImg:display(Visu,Draw_disp),
cImg:delete(CropR),
cImg:delete(CropG),
cImg:delete(CropB)
; true
)
; true
),
!, loop(Image,Visu,Main_disp,Draw_disp).
我希望从代码中删除错误,任何其他指导都会有很大帮助。
解决方案
推荐阅读
- react-native - 显示加载器,直到实时链接图像未完全加载 React native 0.58
- sql-server - 带有附加列的 SQL 连接查询
- python - 使用字典值评估 python 字符串表达式
- php - SMTP 对内置 PHP 邮件保持打开状态()
- swift - 对服务器的 POST 请求后,用户对象包含 nil
- wordpress - 在应用浏览器中,在 ionic 3 PWA 的新选项卡中打开链接
- python - 如何处理 pandas gbq 相关异常?
- java - 再次如何将多个模拟 OngoingStubbing 与逻辑“和”/“或”结合起来?
- javascript - 尝试进行外部 api 调用,然后将数据插入 mongo db,然后将结果条目呈现给模板
- knockout.js - 根据条件淘汰突出显示行