How to add noise to every image in image datastore?

5 ビュー (過去 30 日間)
Csanad Levente Balogh
Csanad Levente Balogh 2020 年 12 月 6 日
Hi! I am trying to add gauss noise to every image in image datastore. I want to compare a network trained on normal images with a network trained on only noisy images. A found a soltion here:
The way the noise is added here, is by creating a TransformedDatastore, but I can not use it to train a netvork. It gives the folowing error:
It also threw an error every time I wanted to use it's own object functions, even though I followed the steps in the link above. I basically want to have two image datastores with the same pictures, one with noise, one without noise. Is there a way to do that?

採用された回答

Shadaab Siddiqie
Shadaab Siddiqie 2020 年 12 月 9 日
From my understanding you want add gaussian noise to all the image, you can use imnoise and loop through all the images from your dataset.
  1 件のコメント
Csanad Levente Balogh
Csanad Levente Balogh 2021 年 1 月 6 日
Thank you! Yes I assumed it can be done with loops, I just wanted to find a more elegant way. At the end, I used the custom ReadFcn function of the datastore to add the noise. like that:
imageDatastore.ReadFcn = @customReadDatastoreImage
Than the function:
function data = customReadDatastoreImage(filename)
% other settings
% ...
data = imread(filename);
% other preproc (like imresize)
% ...
data = imnoise(data, 'gaussian')
end

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePattern Recognition and Classification についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by