Navigation

Search

Categories

On this page

Isyerinde “oldukca nazik” olma tehlikesi
Using Data Pump Export(expdp) Over Network
Workaround for ORA-39014, ORA-12801, ORA-29913
Solution of ORA-39002, ORA-39070, ORA-39087
An Interesting PL/SQL Bug about References
Solution for ORA-01092, ORA-00704, ORA-39700
RGB to/from CMYK Color Conversion Resources
Noise Generation
How to Sort ArrayList with ICompare Interface
Image Processing :: Region Properites

Archive

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

RSS 2.0 | Atom 1.0 | CDF

Send mail to the author(s) E-mail

Total Posts: 291
This Year: 0
This Month: 0
This Week: 0
Comments: 0

Sign In
Pick a theme:

# Monday, September 22, 2008
Monday, September 22, 2008 11:26:08 PM (GTB Daylight Time, UTC+03:00) ( Business Life )

Bugün cio.com da bir makale okudum. Makale "The Danger of Being Too Nice at Work" hakkındaydı. Toplum olarak insanları kırmama ve nezaket konularında hassas olduğumuz için öncelikli olarak bizi de ilgilendirdiğini düşündüm. CIO editörlerinden "Meridith Levinson", Nice Guys Can Get the Corner Office(Eight Strategies for Winning in Business Without Being a Jerk)(Russ C. Edelman, Timothy R. Hiltabiddle, Charles C. Manz) adlı kitaptan alıntılar yaparak makaleyi tamamlıyor. Makalenin tamamını aktarmayacağım. Sadece ilgimi çeken bir noktayı aşağıya alıntılıyorum:

"The nice guy is forever putting the oxygen mask on someone else before putting it on himself"(nazik insanlar, oksijen maskesini kendilerinden önce başkalarına takar...)

Makaleyi okumanızı öneririm...

Comments [0] | | # 
# Monday, September 15, 2008
Monday, September 15, 2008 11:47:13 PM (GTB Daylight Time, UTC+03:00) ( Oracle )

Data Pump Export can be used over Networks. Normally when data pump export utility(expdp) executes, it creates a dump file to the server where the database is installed. You can DIRECTORY parameters in order to specify operating system file path.

Suppose that you have 2 databases(srv1db and srv2db) in 2 different servers(srv1 and srv2). If you run expdp on srv2db, dump file shall be created in srv2 server. You can also run expdp on srv1db and dump file shall be created in srv2 server, with NETWORK_LINK expdp parameter. See demostration below:

 

 

--srv1db

SQL> select DIRECTORY_PATH from all_directories where directory_name = 'DATA_PUMP_DIR';

 

DIRECTORY_PATH

--------------------------------------------------------------------------------

/usr/users/oracle/DP

 

SQL>

 

 

--srv2db

SQL> select DIRECTORY_PATH from all_directories where directory_name = 'DATA_PUMP_DIR';

 

DIRECTORY_PATH

--------------------------------------------------------------------------------

/home/oracle/DP

 

SQL>

 

---srv1

uccs01 oracle@srv1:/usr/users/oracle/DP> ls -ltr

 

 

--srv2

bash-3.00$ ls -ltr /home/oracle/DP

 

 

 

 

--expdp on srv2

bash-3.00$ expdp mte/mte@srv1db tables=t directory=DATA_PUMP_DIR dumpfile=mte_t.dmp logfile=mte_t.log

 

Export: Release 10.2.0.2.0 - 64bit Production on Wednesday, 13 August, 2008 10:15:53

 

Copyright (c) 2003, 2005, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

Starting "MTE"."SYS_EXPORT_TABLE_01": mte/********@srv1db tables=t directory=DATA_PUMP_DIR dumpfile=mte_t.dmp logfile=mte_t.log

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 64 KB

Processing object type TABLE_EXPORT/TABLE/TABLE

. . exported "MTE"."T" 5.125 KB 31 rows

Master table "MTE"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

******************************************************************************

Dump file set for MTE.SYS_EXPORT_TABLE_01 is:

/usr/users/oracle/DP/mte_t.dmp

Job "MTE"."SYS_EXPORT_TABLE_01" successfully completed at 10:12:11

 

 

 

---srv1

uccs01 oracle@srv1:/usr/users/oracle/DP> ls -ltr

total 2455

-rw-r----- 1 oracle dba 69632 Aug 13 10:12 mte_t.dmp

-rw-r--r-- 1 oracle dba 981 Aug 13 10:12 mte_t.log

uccs01 oracle@srv1:/usr/users/oracle/DP>

 

 

--srv2

bash-3.00$ ls -ltr /home/oracle/DP

 

 

 

 

--srv2db, create a dblink for srv1db

SQL>create public database link srv1db_LINK.ORC

connect to USER1

using 'srv1db.ORC';

 

 

--expdp on srv2

bash-3.00$ expdp USER1/USER1@srv2db tables=t directory=DATA_PUMP_DIR dumpfile=mte_t2.dmp logfile=mte_t2.log network_link=srv1db_link

 

Export: Release 10.2.0.2.0 - 64bit Production on Wednesday, 13 August, 2008 10:22:09

 

Copyright (c) 2003, 2005, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

Starting "USER1"."SYS_EXPORT_TABLE_01": USER1/********@srv2db tables=t directory=DATA_PUMP_DIR dumpfile=mte_t2.dmp logfile=mte_t2.log network_link=srv1db_link

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 64 KB

Processing object type TABLE_EXPORT/TABLE/TABLE

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

. . exported "USER1"."T" 5.351 KB 16 rows

Master table "USER1"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

******************************************************************************

Dump file set for USER1.SYS_EXPORT_TABLE_01 is:

/home/oracle/DP/mte_t2.dmp

Job "USER1"."SYS_EXPORT_TABLE_01" successfully completed at 10:22:45

 

bash-3.00$

 

 

 

---srv1

uccs01 oracle@srv1:/usr/users/oracle/DP> ls -ltr

total 2455

-rw-r----- 1 oracle dba 69632 Aug 13 10:12 mte_t.dmp

-rw-r--r-- 1 oracle dba 981 Aug 13 10:12 mte_t.log

uccs01 oracle@srv1:/usr/users/oracle/DP>

 

 

--srv2

bash-3.00$ ls -ltr /home/oracle/DP

-rw-r--r-- 1 oracle oinstall 0 Aug 13 10:22 mte_t2.log

-rw-r----- 1 oracle oinstall 4096 Aug 13 10:22 mte_t2.dmp

bash-3.00$

Comments [0] | | # 
Monday, September 15, 2008 1:50:47 AM (GTB Daylight Time, UTC+03:00) ( Oracle )

There in an Oracle Bug(5472417 , Note:438608.1) about parallelism mechanism of data pump export. Workaround fort his may be removing parallelism parameter from export(running as a single process)

 

bash-3.00$ expdp MT/MT full=y directory=DATA_PUMP_DIR dumpfile=orcl_full_imp_p%u.dmp logfile=orcl_full_imp.log parallel=4 network_link=orcl_link

 

Export: Release 10.2.0.2.0 - 64bit Production on Wednesday, 13 August, 2008 10:49:49

 

Copyright (c) 2003, 2005, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

Starting "MT"."SYS_EXPORT_FULL_01": MT/******** full=y directory=DATA_PUMP_DIR dumpfile=orcl_full_imp_p%u.dmp logfile=orcl_full_imp.log parallel=4 network_link=orcl_link

Estimate in progress using BLOCKS method...

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 13.06 GB

Processing object type DATABASE_EXPORT/TABLESPACE

Processing object type DATABASE_EXPORT/PASSWORD_VERIFY_FUNCTION

Processing object type DATABASE_EXPORT/PROFILE

Processing object type DATABASE_EXPORT/SYS_USER/USER

Processing object type DATABASE_EXPORT/SCHEMA/USER

Processing object type DATABASE_EXPORT/ROLE

Processing object type DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/ROLE_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE

Processing object type DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA

Processing object type DATABASE_EXPORT/RESOURCE_COST

Processing object type DATABASE_EXPORT/SCHEMA/DB_LINK

Processing object type DATABASE_EXPORT/TRUSTED_DB_LINK

Processing object type DATABASE_EXPORT/SCHEMA/SEQUENCE/SEQUENCE

Processing object type DATABASE_EXPORT/SCHEMA/SEQUENCE/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/DIRECTORY/DIRECTORY

Processing object type DATABASE_EXPORT/DIRECTORY/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/DIRECTORY/GRANT/WITH_GRANT_OPTION/OBJECT_GRANT

Processing object type DATABASE_EXPORT/DIRECTORY/GRANT/CROSS_SCHEMA/OBJECT_GRANT

Processing object type DATABASE_EXPORT/CONTEXT

Processing object type DATABASE_EXPORT/SCHEMA/PUBLIC_SYNONYM/SYNONYM

Processing object type DATABASE_EXPORT/SCHEMA/SYNONYM

Processing object type DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC

Processing object type DATABASE_EXPORT/SCHEMA/TYPE/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/PRE_SYSTEM_ACTIONS/PROCACT_SYSTEM

Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/POST_SYSTEM_ACTIONS/PROCACT_SYSTEM

Processing object type DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/PRE_TABLE_ACTION

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/GRANT/CROSS_SCHEMA/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/INDEX

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/CONSTRAINT

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/COMMENT

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/RLS_POLICY

Processing object type DATABASE_EXPORT/SCHEMA/PACKAGE/PACKAGE_SPEC

Processing object type DATABASE_EXPORT/SCHEMA/PACKAGE/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/FUNCTION/FUNCTION

Processing object type DATABASE_EXPORT/SCHEMA/FUNCTION/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/PROCEDURE/PROCEDURE

Processing object type DATABASE_EXPORT/SCHEMA/PROCEDURE/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC

Processing object type DATABASE_EXPORT/SCHEMA/FUNCTION/ALTER_FUNCTION

Processing object type DATABASE_EXPORT/SCHEMA/PROCEDURE/ALTER_PROCEDURE

Processing object type DATABASE_EXPORT/SCHEMA/VIEW/VIEW

Processing object type DATABASE_EXPORT/SCHEMA/VIEW/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/VIEW/GRANT/CROSS_SCHEMA/OBJECT_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/VIEW/COMMENT

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type DATABASE_EXPORT/SCHEMA/PACKAGE_BODIES/PACKAGE/PACKAGE_BODY

Processing object type DATABASE_EXPORT/SCHEMA/TYPE/TYPE_BODY

Processing object type DATABASE_EXPORT/SCHEMA/JAVA_CLASS/JAVA_CLASS

Processing object type DATABASE_EXPORT/SCHEMA/JAVA_RESOURCE/JAVA_RESOURCE

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/POST_TABLE_ACTION

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TRIGGER

Processing object type DATABASE_EXPORT/SCHEMA/VIEW/TRIGGER

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCACT_INSTANCE

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/POST_INSTANCE/PROCDEPOBJ

Processing object type DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCOBJ

Processing object type DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA

ORA-39014: One or more workers have prematurely exited.

ORA-39029: worker 4 with process name "DW04" prematurely terminated

ORA-31671: Worker process DW04 had an unhandled exception.

ORA-12801: error signaled in parallel query server

ORA-29913: error in executing ODCIEXTTABLEPOPULATE callout

ORA-29400: data cartridge error

KUP-04038: internal error: kupax-meta1

ORA-06512: at "SYS.ORACLE_DATAPUMP", line 78

ORA-06512: at "SYS.KUPW$WORKER", line 1345

ORA-06512: at line 2

 

Job "MT"."SYS_EXPORT_FULL_01" stopped due to fatal error at 11:13:47

Comments [0] | | # 
Monday, September 15, 2008 1:40:38 AM (GTB Daylight Time, UTC+03:00) ( Oracle )

The errors that i mentioned in the subject, can be occured during data pump export/import(expdp/impdp executables). If the directory object does not have necessary rigths, will fire an exception. Giving rights(read - write) will be a solution.

 

bash-3.00$ expdp mte/mte@test02 tables=t directory=DATA_PUMP_DIR dumpfile=mte_t.dmp logfile=mte_t.log

 

Export: Release 10.2.0.2.0 - 64bit Production on Wednesday, 13 August, 2008 10:09:48

 

Copyright (c) 2003, 2005, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-39087: directory name DATA_PUMP_DIR is invalid

 

 

 

 

>sqlplus

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.2.0

Connected as HR

 

SQL> conn mte/mte@test02;

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.2.0

Connected as mte

 

SQL> select directory_name from all_directories;

 

DIRECTORY_NAME

------------------------------

HLR_DIR

 

SQL> conn HR/HR@test02;

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.2.0

Connected as HR

 

SQL> grant read, write on directory DATA_PUMP_DIR to mte;

 

Grant succeeded

 

SQL> conn mte/mte@test02;

Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.2.0

Connected as mte

 

SQL> select directory_name from all_directories;

 

DIRECTORY_NAME

------------------------------

DATA_PUMP_DIR

HLR_DIR

 

SQL>

 

 

 

bash-3.00$ expdp mte/mte@test02 tables=t directory=DATA_PUMP_DIR dumpfile=mte_t.dmp logfile=mte_t.log

 

Export: Release 10.2.0.2.0 - 64bit Production on Wednesday, 13 August, 2008 10:15:53

 

Copyright (c) 2003, 2005, Oracle. All rights reserved.

 

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

Starting "MTE"."SYS_EXPORT_TABLE_01": mte/********@test02 tables=t directory=DATA_PUMP_DIR dumpfile=mte_t.dmp logfile=mte_t.log

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 64 KB

Processing object type TABLE_EXPORT/TABLE/TABLE

. . exported "MTE"."T" 5.125 KB 31 rows

Master table "MTE"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

******************************************************************************

Dump file set for MTE.SYS_EXPORT_TABLE_01 is:

/usr/users/oracle/DP/mte_t.dmp

Job "MTE"."SYS_EXPORT_TABLE_01" successfully completed at 10:12:11

 

Comments [0] | | # 
# Sunday, September 14, 2008
Sunday, September 14, 2008 2:12:39 PM (GTB Daylight Time, UTC+03:00) ( Oracle )

I have struggled a PL/SQL problem a few days ago. The problem was, as Pl/SQL Compiler says, "PLS-00225: subprogram or cursor 'string' reference is out of scope". It was not as easy as Compiler mentions.

Let me show it by an example:

 

Suppose that you have 2 packages, PACK1 and PACK2. In PACK2, you have a procedure in PACK1 named PACK1 and another procedure that named PACK1 in PACK2 package. When the namings are established like that you will get "PLS-00225: subprogram or cursor 'string' reference is out of scope" error.

 

Example below CMP.COMPARE and P_TEST.COMPARE exists. In P_TEST, there is a reference for COMPARE package. It Works fine.

 

SQL> CREATE OR REPLACE PACKAGE CMP IS

2 TYPE t_HashTable IS TABLE OF VARCHAR2(512) INDEX BY VARCHAR2(32);

3

4 TYPE t_SQL IS RECORD(

5 SQL_STATEMENT VARCHAR2(4000),

6 BIND_LIST t_HashTable

7 );

8

9 END CMP;

10 /

 

Package created

 

SQL>

SQL> CREATE OR REPLACE PACKAGE BODY CMP IS

2

3 PROCEDURE Compare IS

4 BEGIN

5 NULL;

6 END Compare;

7

8 END CMP;

9 /

 

Package body created

 

SQL>

SQL> CREATE OR REPLACE PACKAGE p_test IS END p_test;

2 /

 

Package created

 

SQL> CREATE OR REPLACE PACKAGE BODY p_test IS

2

3 TYPE t_SQLList IS TABLE OF CMP.t_SQL INDEX BY VARCHAR2(16);

4

5 PROCEDURE Compare IS

6 BEGIN

7 NULL;

8 END Compare;

9

10 END p_test;

11 /

 

Package body created

 

SQL>

 

 

 

Example2 below COMPARE.COMPARE and P_TEST.COMPARE exists. In P_TEST, there is a reference for COMPARE package. Altough there won't seem any errors, PL/SQL Compiler is angry with code.

 

 

SQL> CREATE OR REPLACE PACKAGE COMPARE IS

2 TYPE t_HashTable IS TABLE OF VARCHAR2(512) INDEX BY VARCHAR2(32);

3

4 TYPE t_SQL IS RECORD(

5 SQL_STATEMENT VARCHAR2(4000),

6 BIND_LIST t_HashTable

7 );

8

9 END COMPARE;

10 /

 

Package created

 

SQL> CREATE OR REPLACE PACKAGE BODY COMPARE IS

2

3 PROCEDURE Compare IS

4 BEGIN

5 NULL;

6 END Compare;

7

8 END COMPARE;

9 /

 

Package body created

 

SQL> CREATE OR REPLACE PACKAGE p_test IS END p_test;

2 /

 

Package created

 

SQL> CREATE OR REPLACE PACKAGE BODY p_test IS

2

3 TYPE t_SQLList IS TABLE OF COMPARE.t_SQL INDEX BY VARCHAR2(16);

4

5 PROCEDURE Compare IS

6 BEGIN

7 NULL;

8 END Compare;

9

10 END p_test;

11 /

 

Warning: Package body created with compilation errors

 

SQL> show errors;

Errors for PACKAGE BODY SYSADM.P_TEST:

 

LINE/COL ERROR

-------- -------------------------------------------------------------------

3/30 PLS-00225: subprogram or cursor 'COMPARE' reference is out of scope

3/3 PL/SQL: Item ignored

 

SQL>

 

 

 

Example3 below CMP.COMPARE and P_TEST.COMPARE2 exists.(i changed the name of COMPARE to COMPARE2 in P_TEST) In P_TEST, there is a reference for COMPARE package. It Works fine.

 

SQL> CREATE OR REPLACE PACKAGE COMPARE IS

2 TYPE t_HashTable IS TABLE OF VARCHAR2(512) INDEX BY VARCHAR2(32);

3

4 TYPE t_SQL IS RECORD(

5 SQL_STATEMENT VARCHAR2(4000),

6 BIND_LIST t_HashTable

7 );

8

9 END COMPARE;

10 /

 

Package created

 

SQL> CREATE OR REPLACE PACKAGE BODY COMPARE IS

2

3 PROCEDURE Compare IS

4 BEGIN

5 NULL;

6 END Compare;

7

8 END COMPARE;

9 /

 

Package body created

 

SQL> CREATE OR REPLACE PACKAGE p_test IS END p_test;

2 /

 

Package created

 

SQL> CREATE OR REPLACE PACKAGE BODY p_test IS

2

3 TYPE t_SQLList IS TABLE OF COMPARE.t_SQL INDEX BY VARCHAR2(16);

4

5 PROCEDURE Compare2 IS

6 BEGIN

7 NULL;

8 END Compare2;

9

10 END p_test;

11 /

 

Package body created

 

SQ

 

Comments [0] | | # 
Sunday, September 14, 2008 1:04:07 PM (GTB Daylight Time, UTC+03:00) ( Oracle )

A few days ago i have created an Oracle database manually(once i have crated an automated DB creation tamplate, it has a bug L). Somehow, some errors occured during creation. Then, when i started open the db, i got some errors. I explained below what the work around is.

 

orcl oracle@srv:/data06/app/oracle/admin/orcl/scripts> sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.2.0 - Production on Tue Aug 5 23:50:26 2008

 

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 104857600 bytes

Fixed Size 2046864 bytes

Variable Size 75498608 bytes

Database Buffers 20971520 bytes

Redo Buffers 6340608 bytes

Database mounted.

ORA-01092: ORACLE instance terminated. Disconnection forced

 

 

SQL> quit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

 

 

Check the alert log and trace

 

orcl oracle@srv:/data06/app/oracle/admin/orcl/bdump> more alert_orcl.log

......

.....

Errors in file /data06/app/oracle/admin/orcl/udump/orcl_ora_151225.trc:

ORA-00704: bootstrap process failure

ORA-39700: database must be opened with UPGRADE option

Tue Aug 5 23:45:33 2008

Error 704 happened during db open, shutting down database

USER: terminating instance due to error 704

Instance terminated by USER, pid = 151225

ORA-1092 signalled during: alter database open...

 

 

 

Then solution

 

orcl oracle@srv:/data06/app/oracle/admin/orcl/scripts> sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.2.0 - Production on Tue Aug 5 23:51:59 2008

 

Copyright (c) 1982, 2005, Oracle. All Rights Reserved.

 

Connected to an idle instance.

 

SQL> startup upgrade

ORACLE instance started.

 

Total System Global Area 104857600 bytes

Fixed Size 2046864 bytes

Variable Size 75498608 bytes

Database Buffers 20971520 bytes

Redo Buffers 6340608 bytes

Database mounted.

Database opened.

SQL> @/data06/app/oracle/product/10.2/rdbms/admin/catalog.sql;

.....

SQL> @/data06/app/oracle/product/10.2/rdbms/admin/catproc.sql;

Comments [1] | | # 
# Saturday, May 24, 2008
Saturday, May 24, 2008 11:50:18 AM (GTB Daylight Time, UTC+03:00) ( Image Processing )

Online conversion

http://web.forret.com/tools/color.asp?R=100&G=0&B=255

 

codeproject

http://www.codeproject.com/KB/applications/xcmyk.aspx

http://www.codeproject.com/KB/GDI-plus/colorclass.aspx

http://www.codeproject.com/KB/cpp/adobe_cp_clone_part_1.aspx

 

tutorial

http://www.maxostudio.com/Tut_CS_CMYK.cfm

 

wikipedia

http://en.wikipedia.org/wiki/CMYK_color_model

 

RGB->CMY->CMYK conversion

http://www.easyrgb.com/math.php?MATH=M13#text13

 

Sample source

//RGB values = 0 ÷ 255

//CMY values = 0 ÷ 1

 

C = 1 - ( R / 255 )

M = 1 - ( G / 255 )

Y = 1 - ( B / 255 )

 

//Where CMYK and CMY values = 0 ÷ 1

 

var_K = 1

 

if ( C < var_K ) var_K = C

if ( M < var_K ) var_K = M

if ( Y < var_K ) var_K = Y

if ( var_K == 1 ) { //Black

C = 0

M = 0

Y = 0

}

else {

C = ( C - var_K ) / ( 1 - var_K )

M = ( M - var_K ) / ( 1 - var_K )

Y = ( Y - var_K ) / ( 1 - var_K )

}

K = var_K

Comments [0] | | # 
# Saturday, April 26, 2008
Saturday, April 26, 2008 4:43:46 PM (GTB Daylight Time, UTC+03:00) ( C# | Computer Vision | Image Processing )
  1. Gürültü Oluşturma(Noise Generation)

Gerçek hayatta resimler tam istenildiği şekilde elde edilemezler. Resim bilgisi yanında bir takım çevresel faktörlerden dolayı gürültü de içerirler. Bu gürültüler bazen modellenebilir bazen de modellenemez. Resim üzerinde yapılacak işlemler için gerçek hayattaki resimlerin modellenebilmesi, çalışmanın başarısını arttıracaktır. Bu nedenle var olan resim üzerinde gürültü oluşturma, resim işlemede yerini almıştır.

d(r,c)=I(r,c)+n(r,c)

Denklem 1 Gürültü Formülü

 

Gürültünün, resme etkisini bulabilmek için Sinyal Gürültü Oranı(Signal Noise Ratio, SNR) hesaplanır. Bu değerin yüksek olması, gürültülü resmin orijinaline yakınlığını belirtir. Bir diğer ifadeyle SNR değeri ne kadar yüksek ise resim, o kadar az bozulmuş olarak algılanır.

Denklem 2 SNR Formülü

.

  1. Gauss Gürültüsü(Gauss Noise)

Bir Gauss dağılımı(normal dağılım, gauss distribution) yardımıyla gürültü oluşturulur. Dağılımdaki her bir değer(olasılık) kadar rastgele pikseller değiştirilir. Örneğin standart sapması 14 olan bir dağılımda g(5) = 0,027'dir. Resmin de 10.000 pikselden oluştuğu varsayılırsa, 0,027* 10.000 = 270 piksel değerine +5'in eklenmesi gerekir. Uç değerler için 0 ve 255'e göre yuvarlama yapılır.

Aşağıda farklı standart sapma değerlerine göre dağılımlar verilmiştir:

Grafik 1 Gauss Dağılım(Standart Sapma = 14)

 

Grafik 2 Gauss Dağılım(Standart Sapma = 27)

 

Gauss gürültüsü bir resme uygulanırken, asıl görüntü bilgisi, gürültüden etkilenmemektedir. Asıl görüntü üzerinden rastgele alınan her bir piksele gürültü uygulanıp, gürültülü eklemiştir. Bu işlemler rastgele yapıldığı için asıl görüntü üzerindeki bir piksel birçok defa gürültüden etkilenebilmektedir. Gürültülü resmin her bir piksel değeri, o piksele uygulanan en son gürültülü ile oluşmaktadır.

  1. Algoritma ve Kodlama

Kodlamanın göze çarpan kısımları aşağıda belirtilmiştir:

for (int GrayLevel = -255; GrayLevel <= 255; GrayLevel++)

{

Probability = GaussFunction.GetGaussValue(GrayLevel);

EffectedPixelCount = (int)(Probability * PixelCount);

for (int i = 0; i < EffectedPixelCount; i++)

{

RandomIndex = Randomizer.Next(0,PixelCount-1);

NoisyData[RandomIndex] = GetPixel(ImageData[RandomIndex] + GrayLevel);

}

}

  1. Analiz ve Yorumlar

Peppersgary PGM formatlı resim üzerinde gürültü oluşturulmuştur. Çıkan sonuçlar aşağıda belirtilmiştir:

Şekil 3 peppergray.pgm(noisy,gauss,σ =14)

 

Şekil 4 peppergray.pgm(noisy,gauss,σ =27)

 

σ =27

σ =14

Piksel Sayısı

263169

Signal Noise Ratio (SNR)

39.196

136.058

Tablo 1 Gauss Gürültü Analizi

 

Yukarıdaki tablo ışığında peppersgray resmi için yapılabilecek yorumlar aşağıda belirtilmiştir:

  • Standart sapma değerlerine göre oluşan SNR değerleri farklılık göstermektedir.

  • Düşük SNR değerleri için resim, daha fazla bozulmuş olarak algılanır.

 

 

  1. Tekdüze Gürültü(Uniform Noise)

Bu gürültü şeklinde, gürültü sabit bir şekilde görüntü üzerinde dağılmıştır. -47 ile +47 arasındaki bir sınır için

1 / (47-(-47)) = 1/94

Olasılığında gürültü uygulanmıştır. Bir başka ifadeyle -47'den +47'e kadar her bir değer 1/94 olasılığında gürültüye etkimiştir.

 

Aşağıda farklı sınır değerlerine ait tekdüze grafikler verilmiştir.

 

Grafik 3 Tekdüze Gürültü(-47,+47)

 

Grafik 4 Tekdüze Gürültü(-7,+7)

  1. Algoritma ve Kodlama

Kodlamanın göze çarpan kısımları aşağıda belirtilmiştir:

Probability = 1.0 / (_end - _start);

EffectedPixelCount = (int)(Probability * PixelCount);

 

for (int GrayLevel = _start; GrayLevel <= _end; GrayLevel++)

{

for (int i = 0; i < EffectedPixelCount; i++)

{

RandomIndex = Randomizer.Next(0, PixelCount - 1);

NoisyData[RandomIndex] = GetPixel(ImageData[RandomIndex] + GrayLevel);

}

}

  1. Analiz ve Yorumlar

Peppersgary PGM formatlı resim üzerinde gürültü oluşturulmuştur. Çıkan sonuçlar aşağıda belirtilmiştir:

Şekil 5 peppersgray.pgm(noisy,uniform,-47:47)

 

 

 

Şekil 6 peppersgray.pgm(noisy,uniform,-7:7)

 

 

[-7,7]

[-47,47]

Piksel Sayısı

263169

Signal Noise Ratio (SNR)

1335,138

37,994

Tablo 2 Uniform Gürültü Analizi

 

Yukarıdaki tablo ışığında peppersgray resmi için yapılabilecek yorumlar aşağıda belirtilmiştir:

  • Sınır değerlerine göre oluşan SNR değerleri farklılık göstermektedir. Birbirine yakın değerler için resim daha az gürültülü olarak oluşmaktadır.

  • Düşük SNR değerleri için resim, daha fazla bozulmuş olarak algılanır.

 

  1. Tuz-Biber Gürültüsü(Salt-Pepper Noise)

Bu gürültü şeklinde, gürültü tuz ve biber olacak şekilde uygulanmıştır. Tuz gürültüsü pikseli beyaz, biber gürültüsü ise pikseli siyah yapmaktadır.

 

  1. Algoritma ve Kodlama

Kodlamanın göze çarpan kısımları aşağıda belirtilmiştir:

EffectedPixelCount = (int)(_saltRatio * PixelCount);

 

for (int i = 0; i < EffectedPixelCount; i++)

{

RandomIndex = Randomizer.Next(0, PixelCount - 1);

NoisyData[RandomIndex] = 255;

}

 

EffectedPixelCount = (int)(_pepperRatio * PixelCount);

 

for (int i = 0; i < EffectedPixelCount; i++)

{

RandomIndex = Randomizer.Next(0, PixelCount - 1);

NoisyData[RandomIndex] = 0;

}

  1. Analiz ve Yorumlar

Peppersgary PGM formatlı resim üzerinde gürültü oluşturulmuştur. Çıkan sonuçlar aşağıda belirtilmiştir:

 

Şekil 7 peppersgray.pgm(noisy,salt:%5,pepper:%5)

 

Şekil 8 peppersgray.pgm(noisy,salt:%1,pepper:%1)

 

 

Salt:%5; Pepper:%5

Salt:%1; Pepper:%1

Piksel Sayısı

263169

Signal Noise Ratio (SNR)

9,915

43,707

Tablo 3 Salt-Pepper Gürültü Analizi

 

Yukarıdaki tablo ışığında peppersgray resmi için yapılabilecek yorumlar aşağıda belirtilmiştir:

  • Salt ve Pepper oranlarına göre oluşan SNR değerleri farklılık göstermektedir. Düşük oranlar için resim daha az gürültülü olarak oluşmaktadır.

  • Düşük SNR değerleri için resim, daha fazla bozulmuş olarak algılanır.

 

 

  1. Sinyal Gürültü Oranı(Signal Noise Ratio, SNR)

Oluşturulan her bir gürültülü resim için SNR değeri de hesaplanmıştır. Analiz kısmındaki tablodan bu değerler incelenebilir.

SNR değerinin hesaplanmasında kullnılan algoritma aşağıda belirtilmiştir:

double t1 = 0;

double t2 = 0;

 

for (int i = 0; i < OriginalImageData.Length; i++)

{

t1 += NoisyImageData[i] * NoisyImageData[i];

t2 +=(OriginalImageData[i]-NoisyImageData[i])*(OriginalImageData[i]-NoisyImageData[i]);

}

SNR = t1 / t2;

  1. Uygulama

 

Uygulama ComputerVision.exe adlı dosyadan oluşmaktadır. İşlenecek resimler, bu dosyanın bulunduğu dizine bırakılmalıdır. İşlem sonucunda oluşan rapor dosyaları ve görüntüler, bu dizin altında oluşacaktır. Aşağıda uygulamanın ne şekilde kullanılacağı belirtilmiştir:

 

C:\ComputerVision\>ComputerVision.exe

Computer Vision v1.0.0

Mennan Tekbir

 

Usage:

ComputerVision <operation> <image> [<options>*]

 

Examples:

ComputerVision 3 peppersgray.pgm

ComputerVision 5 peppersgray.pgm gauss 2

ComputerVision 5 peppersgray.pgm uniform -49 49

ComputerVision 5 peppersgray.pgm salt-pepper 0.05 0.05

ComputerVision 6 peppersgray.pgm median noisy_peppersgray.pgm 3

ComputerVision 6 peppersgray.pgm gauss noisy_peppersgray.pgm 1.4

ComputerVision 7 peppersgray.pgm 2

ComputerVision 8 peppersgray.pgm 1.6 1 7

ComputerVision 9 peppersgray.pgm 0.67 25 100

 

Operations :

1 : Connected Components

2 : Erosion(Morphology)

3 : Otsu Thresholding

4 : Region Properties

5 : Noise

6 : Filter

7 : LaplacianOfGaussian(LoG)

8 : DifferenceOfGaussian(DoG)

9 : Canny Edge detector

 

Options :

<noise type> = [gauss, uniform, salt-pepper]

<Standart Deviation> = (for gauss noise )

<a> = (for uniform noise )

<b> = (for uniform noise )

<salt ration> = (for salt-pepper noise )

<pepper ration> = (for salt-pepper noise )

<filter type> = [median, gauss]

<original file name>

<filter mask size> = (for filter operation)

<threshold> = (for edge operation)

 

 

Please enter command(quit to exit)

>

 

 

Uygulamayı indirmek için tıklayınız...

Comments [0] | | # 
# Saturday, April 19, 2008
Saturday, April 19, 2008 9:33:32 AM (GTB Daylight Time, UTC+03:00) ( C# )

A simple demostration shows how to sort an ArrayList in C#.

Output of the program will be:

Printing List before sorting:

1 = 2,5

2 = 1,9

3 = 4

4 = 10,5

5 = 1,1

6 = 3,5

 

Printing List in ascending order

5 = 1,1

2 = 1,9

1 = 2,5

6 = 3,5

3 = 4

4 = 10,5

 

C Sharp Code

using System;

using System.Collections.Generic;

using System.Collections;

 

namespace ArrayListSort

{

class Program

{

static void Main(string[] args)

{

ArrayList List = new ArrayList();

 

List.Add( new Item(1,2.5) );

List.Add(new Item(2, 1.9));

List.Add(new Item(3, 4.0));

List.Add(new Item(4, 10.5));

List.Add(new Item(5, 1.1));

List.Add(new Item(6, 3.5));

 

Console.WriteLine("Printing List before sorting:");

for (int i = 0; i < List.Count; i++)

{

Item D = (Item)List[i];

Console.WriteLine(D.Id + " = " + D.Difference);

}

 

List.Sort();

 

Console.WriteLine("\nPrinting List in ascending order");

for (int i = 0; i < List.Count; i++)

{

Item D = (Item)List[i];

Console.WriteLine( D.Id + " = " + D.Difference );

}

Console.ReadLine();

 

}

}

 

class Item : IComparable

{

 

#region Members

private int mId;

 

public int Id

{

get { return mId; }

set { mId = value; }

}

 

private double mDifference;

 

public double Difference

{

get { return mDifference; }

set { mDifference = value; }

}

#endregion Members

 

#region Constructor

public Item(int _id, double _diff)

{

this.mDifference = _diff;

this.mId = _id;

}

#endregion Constructor

 

#region Compare Interface

public Int32 CompareTo(Object _item)

{

Item ItemInstance = (Item)_item;

 

if (this.Difference > ItemInstance.Difference)

{

return 1;

}

else

{

return -1;

}

 

}

#endregion Compare Interface

 

 

}

}

Comments [0] | | # 
# Tuesday, March 25, 2008
Tuesday, March 25, 2008 11:36:03 PM (GTB Standard Time, UTC+02:00) ( Computer Vision | Image Processing )

Bir resim içindeki parçalar hakkında bilgi sahibi olabilmek, benzerlikler ve farklılıkları bulabilmek amacıyla bu çalışma yapılacaktır. Genel olarak kullanılan özellikler aşağıda belirtilmiştir:

  • Alan : Toplam piksel sayısıdır.
  • Merkez(Centroid) [r',c'] : Satır ve sütundaki toplamların, alana bölünmesidir.
  • Mean Radial Distance: Her bir piksel ile merkez nokta arasındaki farkın ortalamasıdır.
  • Variance Radial Distance : : Her bir piksel ile merkez nokta arasındaki farktan, Mean Radial Distance değerinin farkının karelerinin ortalamalarının kareköküdür.
  • Second-Order Row Moment : Merkez noktasının apsisiyle her bir pikselin apsisinin farkları toplamının, alana oranıdır.
  • Second-Order Column Moment: Merkez noktasının ordinatıyla her bir pikselin ordinatı farkları toplamının, alana oranıdır.
  • Second-Order Mixed Moment: Merkez noktası ile her bir pikselin apsis ve ordinatları farkları çarpımlarının toplamının, alana oranıdır.
  • Circularity2: Mean Radial Distance değerinin Variance Radial Distance değerine oranıdır.
  • Circularity1: Perimeter karesinin alana oranıdır.
  • Perimeter: Şeklin çevresidir. Bu değer, şekil sınırlarının toplamı olarak da hesaplanabilir.

     

    Algoritma ve Kodlama

 

Kodlamanın göze çarpan kısımları aşağıda belirtilmiştir:

public static RegionProperties[] FindRegionsProperties(BinaryPGM _image, int _neighbour)

{

ConnectedComponent CC = new ConnectedComponent(_image, _neighbour);

RegionProperties[] Props = new RegionProperties[CC.LabelCount+1];

byte[][] ImageData = CC.LabeledImage.GetImageDataInMatrixForm();

for (int i = 0; i < Props.Length; i++)

{

Props[i] = new RegionProperties();

Props[i].RegionNumber = i;

}

 

//Props.Length + 1 ::: 0 pixel for background.it will not used

int[] Area = new int[Props.Length + 1];

ArrayOperations.InitializeArray(ref Area, 0);

double[] CentroidRow = new double[Props.Length];

ArrayOperations.InitializeArray(ref CentroidRow, 0);

double[] CentroidColumn = new double[Props.Length];

ArrayOperations.InitializeArray(ref CentroidColumn, 0);

double[] MRD = new double[Props.Length];

ArrayOperations.InitializeArray(ref MRD, 0);

double[] VRD = new double[Props.Length];

ArrayOperations.InitializeArray(ref VRD, 0);

double[] SORM = new double[Props.Length];

ArrayOperations.InitializeArray(ref SORM, 0);

double[] SOCM = new double[Props.Length];

ArrayOperations.InitializeArray(ref SOCM, 0);

double[] SOMM = new double[Props.Length];

ArrayOperations.InitializeArray(ref SOMM, 0);

 

for (int i = 0; i < ImageData.Length; i++)

{

for (int k = 0; k < ImageData[i].Length; k++)

{

Area[ImageData[i][k]]++;

CentroidColumn[ImageData[i][k]] += k;

CentroidRow[ImageData[i][k]] += i;

}

}

 

 

for (int i = 1; i < Props.Length; i++)

{

Props[i].Area = Area[i];

Props[i].CentroidX = CentroidColumn[i] / Props[i].Area ;

Props[i].CentroidY = CentroidRow[i] / Props[i].Area;

}

 

for (int i = 0; i < ImageData.Length; i++)

{

for (int k = 0; k < ImageData[i].Length; k++)

{

MRD[ImageData[i][k]] += Math.Abs(Props[ImageData[i][k]].CentroidY - i) + Math.Abs(Props[ImageData[i][k]].CentroidX - k);

}

}

 

for (int i = 1; i < Props.Length; i++)

{

Props[i].MeanRadialDistance = MRD[i] / (_image.Length * _image.Width);

}

 

for (int i = 0; i < ImageData.Length; i++)

{

for (int k = 0; k < ImageData[i].Length; k++)

{

VRD[ImageData[i][k]] += Math.Pow((Math.Abs(Props[ImageData[i][k]].CentroidY - i) + Math.Abs(Props[ImageData[i][k]].CentroidX - k) - Props[ImageData[i][k]].MeanRadialDistance), 2.0);

SORM[ImageData[i][k]] += Math.Pow(Props[ImageData[i][k]].CentroidY - i, 2.0);

SOCM[ImageData[i][k]] += Math.Pow(Props[ImageData[i][k]].CentroidX - k, 2.0);

SOMM[ImageData[i][k]] += (i - Props[ImageData[i][k]].CentroidY ) * (k - Props[ImageData[i][k]].CentroidX);

}

}

 

for (int i = 1; i < Props.Length; i++)

{

Props[i].VarianceRadialDistance = VRD[i] / (_image.Length * _image.Width);

}

 

for (int i = 1; i < Props.Length; i++)

{

Props[i].Circularity2 = Props[i].MeanRadialDistance / Math.Pow(Props[i].VarianceRadialDistance, 0.5);

}

 

for (int i = 1; i < Props.Length; i++)

{

Props[i].SecondOrderColumnMoment = SOCM[i] / Props[i].Area;

Props[i].SecondOrderRowMoment = SORM[i] / Props[i].Area;

Props[i].SecondOrderMixedMoment = SOMM[i] / Props[i].Area;

}

 

BinaryPGM BoundaryImage = Morphology.GetBoundaryImage(_image);

BoundaryImage.Save("boundary.pgm");

ConnectedComponent CCBoundary = new ConnectedComponent(BoundaryImage, _neighbour);

CCBoundary.LabeledImage.Save("boundary_props.pgm");

byte[] ImageDataBoundary = CCBoundary.LabeledImage.Data;

for (int i = 1; i < Props.Length; i++)

{

Props[i].Perimeter = ArrayOperations.GetArrayElementCount(ImageDataBoundary, (byte)i);

Props[i].Circularity = (Props[i].Perimeter * Props[i].Perimeter) / Props[i].Area;

}

 

return Props;

 

Analiz ve Yorumlar

 

Bu çalışmanın sonuçları aşağıda belirtilmiştir. Şekil 1'de orijinal resim bulunmaktadır. Şekil 2 de ise parçalara ayrılmış resmin numaralandırılmış hali bulunmaktadır. Orijinal resim, 3X3 lük bir yapılandırma elamanı ile Erosion işlemi uygulanıp, orijinal resimden çıkarıldığında sınırlar bulunmuştur. Sınırların alanı, çevre olarak hesaplanmıştır.

 

Şekil 1 Region Properties – Orijinal Resim

 

Şekil 2 Region Properties – Labeled, Numbered

 

Şekil 3 Region Properties – Boundary

 

 

 

1

2

3

4

5

6

7

8

9

10

11

Area

560

2064

2223

1920

458

944

1548

2556

1012

1482

3136

Centroid

52,5; 27,5

146; 58,5

244,58; 78,64

96,5; 90,5

50,5; 95

167,67; 138,78

255,5; 147,5

66; 162,5

250,5; 197,5

180,5; 207,29

71,5; 213,5

Mean Radial Distance

0,11

0,66

0,79

0,7

0,07

0,21

0,42

0,87

0,22

0,4

1,44

Variance Radial Distance

1,71

16,38

23,38

21,24

0,77

3,91

8,96

22,45

3,93

8,5

52,42

Second-Order Row Moment

16,25

213,57

158,69

533,25

44,31

80,76

78,91

222,91

97,75

115,54

85,25

Second-Order Column Moment

133,25

133,23

327,45

47,92

29,96

104,31

192,35

185,63

68,39

127,9

800,25

Second-Order Mixed Moment

0

0

77,23

0

0

12,41

0

0

0

0

0

Circularity2

0,08

0,16

0,16

0,15

0,08

0,11

0,14

0,18

0.11

0.14

0.2

Circularity1

0,08

16,05

36,8

21,68

19,29

32,44

20,93

19,98

16,19

15,59

20,9

Perimeter

104

182

286

204

94

175

180

226

128

152

256

Şekil

Yatay dik dörtgen

Kare

Üçgen

Dikey dik dörtgen

Küre

Üçgen

Elips

Küre

Kare

Kare

Yatay dik dörtgen

Tablo 1 Region Properties Gösterimi

 

Yukarıdaki tablodan çıkarılacak sonuçlar şunlardır:

  • Second-Order Mixed Moment değeri sadece üçgen şeklindeki parçalar için 0 dan farklı çıkmıştır. Üçgen parçaların ayırt edilebilmesi için bu özellik kullanılabilir.

  • Circularity1 değeri, kare parçalar için yaklaşık 16 çıkmıştır. Kare parçaların ayırt edilebilmesi için bu özellik kullanılabilir.

     

 

Uygulama

       

Uygulama, C Sharp(C#) dilinde kodlanmıştır. ComputerVision.exe adlı dosya, çalıştırılabilir halini içermektedir. İşlenecek resimler, bu dosyanın bulunduğu dizine bırakılmalıdır. İşlem sonucunda oluşan rapor dosyaları ve görüntüler, bu dizin altında oluşacaktır. Aşağıda uygulamanın ne şekilde kullanılacağı belirtilmiştir:

       

C:\cv>ComputerVision.exe

Computer Vision v1.0.0

Mennan Tekbir

       

Usage:

  ComputerVision <operation> <image>

       

Example:

  ComputerVision 3 peppersgray.pgm

       

Operations :

  1 : Connected Components

  2 : Erosion(Morphology)

  3 : Otsu Thresholding

  4 : Region Properties

Press any key to exit...

       

       

C:\cv>

       

Uygulamayı indirmek için...

ComputerVision.zip (442.9 KB)

Comments [0] | | #