 Now, let's have a look at the SciLab, which is mentored by Ms. Shamika Nair and managed by Mr. Kiran Khashor. The SciLab has two sub-projects. The first one is SciLab Octave Interface, which facilitates easy use of Octave through SciLab console. It adds to SciLab functionalities by providing a link to Octave's libraries and toolboxes. The second one is image processing for assessment of acute kidney injury using SciLab. SciLab uses image processing techniques to extract information about various image processing from the given kidney image, so I would like to request the team to come up and present. Hello, sir. Basically, our project was related to SciLab. We were working on SciLab. We were given the task to promote SciLab. And the project was individual. The project which was given to me was doing image processing of a complex image, which is used in biomedical applications or as in industrial suppliers and all those things which requires a lot of complex image processing. So there was a mainstream mentality that this can be done only in proprietary softwares like MATLAB and other softwares. So sir gave me a task to do it in the open source platform and for that SciLab was a better option. This was a work assigned to me. That was a complex image was given to me of a human kidney which was damaged and it was taken from fluorescence micro angiography for quantitative assessment of particular cancer. Capitally it changes after kidney injury. So basically it contained red and green spots where the red spots showed the like they display the kidney, the injury in the kidney and the green parts were the capillaries. So this was the actual image which was given to me and basically these type of images are they can be done using MATLAB software but using this open source software would be an easier approach for everyone who around the globe that they can use it free first of all and they should have not bought the MATLAB software as in the search. So the prerequisites for tools and the prerequisites for this image processing were IPD and SIVP. IPD was image processing designs tool and SIVP was SciLab image and video processing tool. So for this project these both tools were used together to somewhat reach to the level of MATLAB. We use both the software's tools so that it can be used for that. The algorithm as in such was the first step was to convert the RGB image which was having 0 to 255 pixels of every every color, red, green and blue as it stands and it was converted into a standard gray image first. That gray image was further processed and standardized using the IPD tool and then it was filtered in only red patches and the green patches. The red patches as I told you already it shows the injury and the green patches as you can see in this image it shows the capillaries which are present in the image. This is the image which is being captured from the confocal microscopy. The task was to find the distance between the red and the injury injured part and the capillaries which are present over there. As I told you it was filtered into red patches and green patches for further processing. So this was the image which was transferred into a gray image and then it was standardized as I told you and then as you can see it was filtered into the red patches and the green patches which is present over here. As you can see in the green patches there is no red component and in the red patches there is no green component. So the third phase was writing this image and we cannot process this image as such because this is having this is actually a gray image which has been filtered. So we cannot process this image as such because it is very big first of all and we cannot identify the values in the matrix where all the red patches are present. We cannot identify that and similarly for green also. So this using a threshold using the histogram of the red image from now I will say this as a red image the red patches when. So this red image it was transformed into a binary image first and then after that it was transformed into a logical image using only true and false values. So when it was transformed it looked like this the left side this thing but it was inverted and in Sylab we have this like the black parts are the false part and the white part are the true parts. So we inverted the image to get the positions of the true values. So this was the inversion and this was the histogram from where we used the threshold value. You can see the starting one is the histogram of the whole image and the second one represents the histogram of only the red particles and as you can see here it is not visible I guess. This 200 value we took it as a threshold and we made this logical image. By using this after using this the edge of the shape of the red patches they can estimate the area and with that we can find the centroid of each the red spots to find the point where the distance is to be measured. You said use IPD and your other SV. SIVP tool. Why only one why cannot not know. Sir because in IPD tool you do not have a writing option so as you are processing the image you want it to be in a serial order you do not want to go again and save the image or save the image in the paint and then save it in a PNG file and then call it back. No but what you have done essentially simple image processing. Yes sir. No image clean up no removal of dirty things etc. Yes sir. Simple image processing simple threshold. Yes sir. That any image processing software why you have to combine two. No sir. Like image processing software as in this is this is done in sila. This is done in SV I think was some image processing in sila. This is the tool in sila. This both are. This both. Why I need two tools. Yes sir I will tell you that in IPD like as I told you IPD filters this. These two things. The next SIVP writes this file IPD does not have writing option. Then you should use SVID only to filter the thing. No no no but SIVP do not filters the image. Every image processing will allow you a simple filter. Sir silab has this advantage that you can use it in you know in a serial file. Silab allows programming right. Yes sir. In science silab for image processing you can use two toolboxes or if you just because IPD only if you will do IPD only use IPD only this is only used for image editing and also for enhancement image enhancement. But we have used it here as a so this was the logical the same thing was done with the green patches. This was the logical green and threshold was given as I told you and the edges of the green were found out which were dark enough the fluorescent edges and rest of the edges were neglected. Then after that we like the work was to find the edges the canny edges of the red patches so that we can find the centroid of the of each of the patch so that we can calculate the distance from any of the capillaries which are present in the image green capillaries as such. So this image was firstly converted into sobel edge and then using that sobel edge image we converted it into a canny edge which was a tougher task. This was the image which was done after that which we got after that and you can see the edges which are present over here it's just the edges not anything else. So by this we can find out the centroid of the image. So as if now what we did was we took the sample patch not all the patches because we just found out the pixel location of that patch. So we found out the centroid not the centroid the center of the patch using this tool. So the total step procedure was the conversion of the image from IGB to gray and the second thing was the separation of red and green. Then we standardized the image it was converted into binary and then eventually it was converted into a logical image. The third thing was identification of red patches and the centroid detection of the red patches and the final thing was the calculation of distance from red part of centroid to the green parts. So the total methodology is this we have got the centroid point of one of the patches but for every patches we are doing we are working on it. Future work is to find the centroid location of all the patches and to find the area of all the patches individually and then using those two we can find the distance from points of the red patches of the reference of the green image. Any questions? Good afternoon everyone. My name is B. Baburidhi. I am doing internship here under Samaika man on Sylab and Octave interface. This is the outline of this presentation. The first introduction the objective of my project is to create an interface between Sylab and Octave. Sylab and Octave are both two open source softwares for numerical computations. But why we need interface between these two softwares? The reason is we have both advantages and disadvantages both Sylab and Octave. To overcome those we need some interface. Coming to Sylab, Sylab has good optical user interface whereas Octave does not have that thing. Then Octave is very compatible with MATLAB, then Sylab does not compatible with MATLAB. If you create an interface between these two softwares we can provide virtual GUI for Octave and as well as we can make Sylab compatible with MATLAB. The approach which I have followed is to create interface between these two softwares we have two options. The number one is executing Sylab commands in Octave, then another one is executing Octave commands in Sylab. I have chosen second one because Octave do not have GUI. So our objective is to execute Octave commands in Sylab. So first we have to give Octave input to Octave and we have to take Octave output from Octave. We have to display that output in Sylab but this whole data transformation I have used some temporary files. Both of these are working on the same system? Yes. Then why temporary files? Both of them are unique process? Yes. Why temporary files? We cannot give Octave directly to Sylab. Why not? The data types may be distributed. That does not matter. I am just questioning why a temporary file? For? Unix has got things like pipes. Yes. Correct? Why we will not use them? If you use piping we have to give Octave output directly to Sylab. But there is a problem with data structures, the representation of data structures may be different. You are using a temporary file right? Yes. You are using temporary file to convert Octave, Sylab equivalent data structure for Octave data structure. Whatever you do, what I am saying is why temporary file? Whatever you do, why we will not use pipe mechanism? For pipe mechanism we have to store output somewhere to convert. No, not when I use pipe. If you use pipe we have to pass Octave output directly to Sylab console. Whatever you write to a temporary file you should write to a pipe. Whenever you read from a temporary file you should read from a pipe. There is a standard way in Unix for process to communicate. If there are two processes in Unix they should never communicate simultaneously running and in real time processes. They should not communicate through temporary files. They should communicate with a pipe that is the Unix mechanism. System has given a mechanism to communicate for two processes. Another communication between process should be through pipes, not through temporary files. How does the second process know what file is to read? I have already defined all those are standard files. I define in program. So that is exactly, that is why you should use pipe. No, so if on the same system if some other user locks in and also runs the program simultaneously what will happen? Two people are running Sylab on the system and both of them want to use Octave. How will it work? This point or main aim is to provide GUI for Octave. Understand, so you should spawn Octave with a pipe. There is something called spawning also. So when you spawn a separate process your Sylab should run a separate process called Octave and establish a two way pipe. Two way pipes also can be established little difficult. There are different methods of inter process communication in Unix and you should have used those rather than temporary file. Temporary file is the worst mechanism. The structure of interface, in this interface these five files are important file. First is Unit.sylab file that initializes the whole setup by linking C-routines and Sylab-routines to the Sylab console. Then second one is Sy2-octo-sylab file. This file contains the method called Sy2-octo method which takes the input Sylab Octave command input and it gives the input to the Octave and takes the output from the Octave and it displays on its console. Then coming to Sy2-octo C, the C program activates the Octave to run the Octave input file and it removes the unwanted output characters in Octave output. Then Octo file is temporary file which is used to store the Octave input. Then Octave output, Txt file is used to store the Octave output. Here is the demo. First we have to execute the Unit.sylab filing, Sylab console. Then it will link C programs and Sylab programs to Sylab. This Unitn is an Octave function which takes complex matrix as argument and returns a Boolean value indicating that whether the given matrix is Unitn matrix or not. First time defining a matrix one is a complex matrix, complex square matrix. Then we can call Octave from Sylab in two ways. The first way is giving complete Octave command as a input as a one argument. Then another one is separating arguments and Octave commands. Then we can give in both ways. But second one is preferable. Here is another example. In Octave we have poly out method, we have poly out function which takes vector and one character as a arguments and displays polynomial equation. Here we can use third party packages also. Here I have used control system package. It is useful for Sylab users who are really migrated from the Octave. They no need to worry about the Octave advanced functionalities. We can make Sylab as compatible with Matlab.