what does imloadfunc do?

I 'm working on non-negative matrix factorization. I have come across a GitHub code for the same. Here, they have used global imloadfunc .im unable to understand why it is been used.

Answers (1)

That global variable imloadfunc is s switch that tells which function to use to read images. If it is set to 'pgma_read', then it'll use that function. In any other case, it'll use the standard imread function.
It's a bad way of programming, there a much better mechanism in matlab for this such as getpref. Hopefully, that global variable is set by whatever starting code there is as if it does not exist your linked function will error.
If it's not set, you can always do:
global imloadfunc;
imloadfunc = ''; %to use default imread
at the command prompt.

4 Comments

when I'm trying to execute this code. I'm getting error SWITCH expression must be a scalar or string constant.
So, what is the value of imloadfunc, when you get the error?
im getting
val ''
Maybe, you're on an older version where '' is not acceptable for switch. A bit odd. You can use any non-empty value,e.g.:
global imloadfunc;
imloadfunc = 'x';

This question is closed.

Asked:

on 17 Aug 2017

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!