我需要手动检查和编辑几百张照片。 某些事物需要涂黑,而其他事物则需要以各种方式标记。
我想编写一个脚本/ GUI,使我能够执行以下操作:
1)打开mspaint
2)将当前保存在工作区中的图像(uint8矩阵)加载到打开的会话中
3)完成编辑后,关闭mspaint并将新图像保存到工作区(作为uint8矩阵)
要实现此目的,我想知道:
如何将工作区中的图像加载到打开的mspaint会话中。
如何将mspaint会话中的图像作为uint8矩阵保存到工作区。
如何关闭mspaint-使用“ system('mspaint')”打开
将非常需要帮助。
谢谢阿隆
答案 0 :(得分:4)
MSPaint没有API,但是,您可以将文件名作为命令行参数传递给它。
这种方法的缺点是用户有责任将图像保存回相同的位置,并在编辑图像后退出MSPaint。
function im = edit_in_paint(im)
temp_filename = [tempname, '.png'];
imwrite(im, temp_filename);
system(['mspaint.exe ' temp_filename]);
im = imread(temp_filename);
delete(temp_filename)
示例
>> im = imread('rice.png');
>> im = edit_in_paint(im);
(打开MSPaint)
编辑图像,然后保存(Ctrl + s)并退出以返回到MATLAB
>> imshow(im);