结合使用Microsoft Paint和Matlab代码

时间:2018-08-16 20:02:59

标签: image matlab

我需要手动检查和编辑几百张照片。 某些事物需要涂黑,而其他事物则需要以各种方式标记。

我想编写一个脚本/ GUI,使我能够执行以下操作:

1)打开mspaint

2)将当前保存在工作区中的图像(uint8矩阵)加载到打开的会话中

3)完成编辑后,关闭mspaint并将新图像保存到工作区(作为uint8矩阵)

要实现此目的,我想知道:

  • 如何将工作区中的图像加载到打开的mspaint会话中。

  • 如何将mspaint会话中的图像作为uint8矩阵保存到工作区。

  • 如何关闭mspaint-使用“ system('mspaint')”打开

将非常需要帮助。

谢谢阿隆

1 个答案:

答案 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)

enter image description here

编辑图像,然后保存(Ctrl + s)并退出以返回到MATLAB

>> imshow(im);

enter image description here