פורסם 2009 בדצמבר 1515 שנים כתבתי פעולה סטאטית שמקבלת תמונה בינארית והופכת אותה למערך דו מימדי שכל תא בו מייצג פיקסל אחד מהתמונה- 0 ללבן ו-1 לשחור . הבעיה היא שכשאני רוצה להשתמש במערך (שבניתי בפעולה נפרדת)בפעולה הראשית ולהפעיל עליו פעולות נוספות זה נותן שגיאה שהמערך לא קיים ..יש לזה פתרון? תודה מראש לעוזרים (: ...
פורסם 2009 בדצמבר 1515 שנים מחבר זו הפעולה שבונה את המערך : public static void imageToArray(Bitmap B) { int width = B.Size.Width; int height = B.Size.Height; int[,] arr = new int[width, height]; int[,] labelarr = new int[width - 2, height - 2]; for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { Color binarycol = B.GetPixel(i, j); if (binarycol.R == 0 && binarycol.G == 0 && binarycol.B == 0)//black arr[i, j] = 1; else arr[i, j] = 0; Debug.Write(arr[i, j]); } Debug.WriteLine(" "); } }זה הזימון : private void comp_btn_Click(object sender, EventArgs e) { Bitmap comp = new Bitmap(pb_grayscale.Image); imageToArray(comp); \\עד כאן עובד בסדר.. int numberofobjects = countObjects(arr); Debug.WriteLine("number of objects is:" + numberofobjects); }countObjectsזה פעולה שמחשבת את מספר העצמים בתמונה ..השגיאה שמתקבלת היא: The name 'arr' does not exist in the current context
פורסם 2009 בדצמבר 1515 שנים מאיפה הבאת את המשתנה arr? הוא לא קיים ב comp_btn_Click.אתה צריך שהפונקציה imageToArray תחזיר את אותו המערך שייצרת, ואז בזימון שלך ליצור משתנה חדש ולהשתמש בו.הינה הקוד: http://www.codetrunk.com/m98fc98c
פורסם 2009 בדצמבר 1515 שנים מחבר תודה רבה! חשבתי על זה אבל לא ידעתי שאפשר להחזיר ערך של מערך , הייתי בטוחה שאם עושים שינוי במערך הוא תקף גם בתוכנית הראשית(ככה לימדו אותנו בבית ספר, בכל אופן)ואה כן ,אני בת ..(:
פורסם 2009 בדצמבר 1515 שנים המערך שלך הוא בדיוק כמו כל משתנה אחר (מחרוזת, מספר..וכו') - ולכן יש לו את אותן תכונות כמו לכל משתנה, כלומר כל מה שמוגדר בטווח של פונקציה ספציפית נשאר בתוכה ולא זמין לשאר התוכנית. וכדאי שתגדירי את זה בפרופיל כדי שלא נטעה שוב
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.