PDA

View Full Version : SimbaExt - My little library!



slacky
03-18-2014, 10:33 PM
SimbaExt
So I have been working on a small plugin for Simba (originally for SCAR). It contains some extra functionality for Simba, pretty much just a Standard Library Extension for Simba, hence the name (Short for Simba Extension). Contains some cool TPointArray function, some math function, and some matrix functions. Also added a small wrapper around simba bitmap to make it more easy for me to convert from matrix to image, and the other way around (nothing special), and stuff like that.


Get it now:
The include (https://github.com/slackydev/SimbaExt#download-latest-include) (extract in to Includes-folder), and source is found @ https://github.com/WarPie/SimbaExt


Documentation! (http://slackworld.net/docs/)
Even tho most of the function-names speaks for it self, a documentation (http://slackworld.net/docs/) is really needed, as it has become pretty large.
If you find that a function it's bugged then post it here, with a small example.


Other notes:

(Almost) every function should start with a prefix: se. this is to avoid collision with functionality from other libraries. This way SimbaExt can be used together with SRL. Functions that does not necessarily start with a prefix is a type helpers, EG: `TIntMatrix.Indices(..)`, `TPointArray.Append(..)`.

Type methods for matrices uses: TIntMatrix, TFloatMatrix, TDoubleMatrix, TExtMatrix.. EG:


var mat: TIntMatrix;
begin
Mat.SetSize(10,10);
WriteLn(Mat);
Mat.Put([Point(5,5),Point(5,6)], 15);
WriteLn(Mat);
end;


Plugin/Include is ONLY supported in Lape, I do not plan to support PascalScript.

Olly
03-18-2014, 10:52 PM
:spot:

http://i.imgur.com/4gYqBin.png

program new;
{$I SimbaExt/SimbaExt.simba}

var
BMP:TRafBitmap;
Mat:T2DFloatArray;
TPA,crc: TPointArray;
ATPA:T2DPointArray;
i:Integer;
t: Int64;
begin
saveBitmap(BitmapFromString(585, 455, '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 H+UWAAI='), 'hi.bmp');


bmp.Open('hi.bmp'); //what ever bitmap...


TPA := se_FindCornerMidPoints(BMP.ToMatrix(), 1.0, 2, 0.1, 10);
for i:=0 to High(TPA) do
begin
SetLength(crc, 0);
se_TPACircle(crc, TPA[i],7);
crc := se_FloodFillTPA(crc, middleTPA(crc), false);
BMP.SetPixels(crc, $0000FF);
BMP.Pixel(TPA[i].x, TPA[i].y, $0000FF);
end;

BMP.Debug();
BMP.Free;
end.

slacky
03-20-2014, 05:26 AM
se_TPACircle is now a function, and supports to be filled.

A new example of Corner Detection on a image:

program new;
{$I SimbaExt/SimbaExt.simba}

var
BMP: TRafBitmap;
TPA: TPointArray;
i: Integer;
begin
BMP.Open('Tests/chess.png');
TPA := se.FindCornerMidPoints(BMP.ToMatrix(), 1.0, 1, 0.3, 1);
for i:=0 to High(TPA) do
BMP.SetPixels(se.TPACircle(TPA[i], 2, True), $0000FF);

BMP.Debug();
BMP.Free();
end.

chess.png (http://www.slackworld.net/downloads/chess.png)

http://oi62.tinypic.com/2u6p4w1.jpg

Fixed version of what olly posted:


program new;
{$I SimbaExt/SimbaExt.simba}

var
BMP:TRafBitmap;
TPA:TPointArray;
i:Integer;
begin
bmp.Create(585, 455, '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 H+UWAAI='); //what ever bitmap...

TPA := se.FindCornerMidPoints(BMP.ToMatrix(), 1.0, 2, 0.1, 10);
for i:=0 to High(TPA) do
BMP.SetPixels(se.TPACircle(TPA[i], 7, True), $0000FF);

BMP.Debug();
BMP.Free;
end.

Clarity
03-20-2014, 05:43 AM
Incredible.

Flight
03-20-2014, 11:24 AM
Really great work Slacky, this is awesome. Also, why the name-change?

Zyt3x
03-20-2014, 03:42 PM
Very nice! Congratulations on the release! :)

slacky
03-20-2014, 09:59 PM
Thanks for the nice comments guys!


Really great work Slacky, this is awesome. Also, why the name-change?
I usually go under the nick "slacky", but when I registered here, slacky was taken..


---------
If anyone got some suggestions, please feel free to share! :)

Zyt3x
03-21-2014, 02:46 PM
I am interested in knowing more about TRafBitmap and the se_Im-functions in SimbaExt_Imaging.pas
Could you post some examples of what one can do differently in simba using TRafBitmap and the se_Im-functions as opposed to TMufasaBitmap?

You probably already know this, but documentation of such huge plugins is what differs the great plugins from the exceptional ones and you'll see more use if you document it :)

slacky
03-21-2014, 11:16 PM
I am interested in knowing more about TRafBitmap and the se_Im-functions in SimbaExt_Imaging.pas
Could you post some examples of what one can do differently in simba using TRafBitmap and the se_Im-functions as opposed to TMufasaBitmap?
TRafBitmap as mentioned is just a wrapper around Simba bitmap.. I do prefer short function-names and a basic object oriented style. There is not that much more to it. Well when I made it, BitmapToMatrix did not exist in Simba, so it also had faster converting from bitmap to matrix / and back. It also features BMP.FindColorTol(...), and no need to often call GetBitmapSize(BMP, W,H), it has the size stored, so you just do BMP.Width, BMP.Height (simpler). It's these small things which matters for me :)

Donno what I can say about the se_Im functions, it's just more image-functions.. Functions there are before I made SimbaExt, when I was still only working on SCARExt: SCAR did not have these functions. We see that Simba is taking some of the more important "se_Im" functions, and adding it (mostly thanks to olly). EG: ThresholdAdaptiveBitmap(..) that function is "se_ImThresholdAdaptive(..)", the se_ImResize() was also added to Simba, under ResizeBitmapEx(), tho the bicubic interpolation was left out, as it very similar to my bilinear interpolation, only slower.
The rest is just stuff I have needed in one or more projects, often used to OCR.



You probably already know this, but documentation of such huge plugins is what differs the great plugins from the exceptional ones and you'll see more use if you document it :)
Hopefully I can come up with some documentation, but it will take me some time.

CynicRus
03-22-2014, 07:20 AM
Nice work!

KeepBotting
03-23-2014, 12:22 PM
This is awesome <3

slacky
05-06-2014, 06:21 PM
Have to mention that SimbaExt got some documentation online now!! Check it out at http://slackworld.net/docs/!

Hopefully it can get a couple of uses :)

Zef Style
11-25-2014, 08:52 PM
Giving this another bump, its awesome, I just started playing around with it

are the docs going to be posted anywhere since the site is down?

3Garrett3
11-25-2014, 08:58 PM
Giving this another bump, its awesome, I just started playing around with it

are the docs going to be posted anywhere since the site is down?

Docs site seems to be working for me (link in Slacky's signature). Can confirm that this is awesome and has so many cool functions.

Zef Style
01-29-2016, 11:35 PM
Its been awhile and I am rusty, can someone tell me what these two issues are regarding?

procedure TBoxArray.Append(const B:TBox); LINE 39 in Type_TBoxArray SimbaExt - Error: Duplicate declaration "Append"

Result := Copy(Self); LINE 11 in Type_TBoxArray SimbaExt - Error: Too many parameters found


commenting them out does allow for compile, but would like to know best way to fix..

thanks

the bank
02-01-2016, 02:45 PM
Its been awhile and I am rusty, can someone tell me what these two issues are regarding?

procedure TBoxArray.Append(const B:TBox); LINE 39 in Type_TBoxArray SimbaExt - Error: Duplicate declaration "Append"

Result := Copy(Self); LINE 11 in Type_TBoxArray SimbaExt - Error: Too many parameters found


commenting them out does allow for compile, but would like to know best way to fix..

thanks

First error means TBoxArray.Append was already specified elsewhere.

Second error means it can't find a version of Copy() that takes a parameter.

Zef Style
02-01-2016, 03:31 PM
First error means TBoxArray.Append was already specified elsewhere.

Second error means it can't find a version of Copy() that takes a parameter.

Yeah just had to comment the Append function out(use SRL/Simba's) and change copy to: System.copy(self);

All is well now

Alien Technology
07-26-2018, 11:43 PM
Slacky, thank you for your contributions to the community.

I went to https://github.com/slackydev/SimbaExt and read the README.md.

I read:


<Sub-section>Download latest include

http://slackworld.net/downloads/SimbaExt.rar

I followed the link. The webpage says (for my browser):


Server not found

Firefox can’t find the server at slackworld.net.

First of all, I am puzzled as to why the include file pertaining to a GitHub repository would be stored on yet another website.

Second of all, how can I obtain it?

Additionally, if one types "slackworld" into the Search text field at the top of the GitHub webpage and clicks on the item in the list box that says "slackworld in this repository", one will see other source files that make reference to http://slackworld.net.

KeepBotting
07-26-2018, 11:49 PM
Slacky, thank you for your contributions to the community.

I went to https://github.com/slackydev/SimbaExt and read the README.md.

I read:


<Sub-section>Download latest include

http://slackworld.net/downloads/SimbaExt.rar

I followed the link. The webpage says (for my browser):


Server not found

Firefox can’t find the server at slackworld.net.

First of all, I am puzzled as to why the include file pertaining to a GitHub repository would be stored on yet another website.

Second of all, how can I obtain it?

Additionally, if one types "slackworld" into the Search text field at the top of the GitHub webpage and clicks on the item in the list box that says "slackworld in this repository", one will see other source files that make reference to http://slackworld.net.

slackworld.net was a website slacky hosted that has since gone down. No matter, as SimbaExt releases are still available on GitHub: https://github.com/slackydev/SimbaExt/releases/tag/0.25

Edit: unfortunately the plugin's documentation seems to have also been hosted slackworld.net, unsure where to find it now.

slacky
07-29-2018, 11:58 PM
Unsure how well this gets along with Simba anymore, it hasn't been touched in nearly 4 years, so it would need a decent tuneup to live once more I suspect.
If you are interested in individual functions within it, there is a good chance you can actually just copy portions of the source to Simba, and run it, but if it's one of them really complex functions, it could be too slow for real time processing in Lape (Simba).

And yes, the server that hosted docs and whatnots is no longer.