Как я могу инвертировать двоичное изображение в MATLAB? - PullRequest
4 голосов
/ 11 марта 2011

У меня есть двоичное изображение, и мне нужно преобразовать все черные пиксели в белые и наоборот.Затем мне нужно сохранить новое изображение в файл.Есть ли способ сделать это, не перебирая каждый пиксель и не переворачивая его значение?

Ответы [ 4 ]

16 голосов
/ 11 марта 2011

Если у вас есть двоичное изображение binImage только с нулями и единицами, есть несколько простых способов его инвертировать:

binImage = ~binImage;
binImage = 1-binImage;
binImage = (binImage == 0);

Затем просто сохраните инвертированное изображение с помощью функции IMWRITE .

2 голосов
/ 05 марта 2014

Вы можете использовать imcomplement функцию Matlab.Допустим, у вас есть двоичное изображение b,

bc = imcomplement(b); % gives you the inverted version of b
b = imcomplement(bc); % returns it to the original b
imwrite(bc,'c:\...'); % to save the file in disk
1 голос
/ 01 ноября 2017

В Matlab, используя not, мы можем конвертировать 1 в 0 и 0 в 1 .

inverted_binary_image = not(binary_image)
0 голосов
/ 30 ноября 2015
[filename, pathname] = uigetfile({'*.bmp'},'Text as image');

img=imread(filename);
img=im2double(img);
[r,c,ch]=size(img);
%imshow(img);
invert_img=img;
if(ch==1)
 for i=1:r
    for j=1:c
        if(invert_img(i,j)==0)
          invert_img(i,j)=1;
        else
          invert_img(i,j)=0;
        end
    end 
end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...