שאלה 2 ג.

צפה בנושא הקודם צפה בנושא הבא Go down

שאלה 2 ג.

הודעה  shay86 on Fri May 29, 2009 8:36 pm

עשיתי את הסעיפים עם הקבצי TEXT,
השאלה היא לגבי הקבצי בינארי, מישהו יודע מה הפורמט המדוייק של הפיקסלים?
הכנסתי לקובץ בינארי את הכותרת עם הרוחב וגובה וכו' אבל אני לא מוצא
בגוגל איך נראית הטבלה של הפיקסלים כדי לנתח אותם לפיקסל אפור.
מישהו יכול לשים פה את הפקודה שלו של ה- FREAD מהקובץ PPM (קליטת 3 צבעים)
ואת הפקודה של ה- FWRITE של הקובץ PGM (כתיבת פיקסל אפור אחד).

תודה.
avatar
shay86
by ref
by ref

מספר הודעות : 14
Join date : 11.04.09

צפה בפרופיל המשתמש

חזרה למעלה Go down

כתיבה וקריאה בקבצים בינארים

הודעה  talmidonet on Sat May 30, 2009 1:40 pm



היי שי Smile

התרגיל החמישי הוא אחד העמוסים. אני זוכרת כמה וכמה לילות לבנים בתקופה הזאת.
בכל אופן, כדי לקרוא 3 ערכי צבעים (=פיקסל אחד) מקובץ בינארי יש להחזיק משתנים המציינים את שלושת הצבעים
r, g, b
ולהריץ את הפקודות הבאות:
י
קוד:
fread(&r, sizeof(char), 1, file);
fread(&g, sizeof(char), 1, file);
fread(&b, sizeof(char), 1, file);


הפקודות לכתיבת פיקסל אחד אפור לקובץ PGM:
י
קוד:
fwrite(pixel, sizeof(char), 1, file);



avatar
talmidonet
by ref
by ref

מספר הודעות : 12
Join date : 10.05.09
Age : 31
מיקום : תל אביב

צפה בפרופיל המשתמש http://talmido.net/

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  shay86 on Sat May 30, 2009 4:22 pm

תודה אבל זה עדיין לא עובד לי,
האם המשתנים R,G,B צריכים להיות מסוג CHAR או INT?

בעיקרון אחרי שקראתי את הכותרת, אני מגיע לשורות של הפיקסלים,
כשאני קורא פיקסל פיקסל אני לא אמור לראות במשתנה מה הערך שלו?
נניח קראתי פיקסל R, אם אני בודק את ערך המשתנה ב-DEBUG אני לא אמור לראות ערך מספרי?
כי אני קורא שם סוג של זבל, אולי זה פשוט בבינארי? (למרות שאני מנסה להפוך את הקובץ PGM
הסופי ל- JPEG וזה לא מצליח).
avatar
shay86
by ref
by ref

מספר הודעות : 14
Join date : 11.04.09

צפה בפרופיל המשתמש

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  talmidonet on Sat May 30, 2009 4:57 pm



כל ערך של צבע בפיקסל הוא
char
אחד.

אני נוהגת לכתוב בתחילת תוכנית:
קוד:
typedef unsigned char Byte;

ואז יש לי טיפוס מסוג בית, ובו אני משתמת.
י
לא תצליח לכתוב לקובץ ג'יי-פי-ג'י, אלא אם כן תכתוב זאת בפורמט הייחודי שלו. כמו של- פי-פי-אם יש את הפורמט המיוחד שלו, כך גם לכל קובץ אחר.
י
בזמן הדיבאג, ולאחר שקלטתי ערכים לתוך
r, g, b
אני יכולה לראות אותם בווטץ'. אני רואה את הערך המספרי שלהם, ובגרשיים את התו שהם מסמלים באסקי, אם קיים כזה.
סביר להניח שאם אתה קורא קובץ בינארי, לרוב המספרים שאתה קורא לא יתאימו לתו אסקי קיים.
י


avatar
talmidonet
by ref
by ref

מספר הודעות : 12
Join date : 10.05.09
Age : 31
מיקום : תל אביב

צפה בפרופיל המשתמש http://talmido.net/

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  shay86 on Sat May 30, 2009 5:06 pm

לא הבנת את הכוונה שלי,
אני התכוונתי שלאחר שיש לי קובץ PGM מוכן ע"י התוכנית שלי,
אני רוצה להשתמש בתוכנה חיצונית להפוך אותו ל- JPEG (ככה יש לי אינדיקציה שהכל עובד).
זה מה שעשיתי גם בסעיפים א, ב והכל היה טוב.

משום מה כאן התוכנה לא מצליחה לקרוא את הקובץ לכן אני משער שעשיתי משהו לא נכון,
אחרי שקלטתי את ה- R,G,B איך אני הופך אותם לפיקסל אחד? (הרי זה CHAR).
האם:
קוד:

fprintf(fp_pgm, "%c", ((r+g+b)/3));
זה יעבוד?
avatar
shay86
by ref
by ref

מספר הודעות : 14
Join date : 11.04.09

צפה בפרופיל המשתמש

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  shay86 on Sat May 30, 2009 5:56 pm

הסתדרתי, תודה רבה Smile
avatar
shay86
by ref
by ref

מספר הודעות : 14
Join date : 11.04.09

צפה בפרופיל המשתמש

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  talmidonet on Sat May 30, 2009 8:11 pm


בכיף Smile
נראה שהשורה האחרונה שכתבת זה בדיוק מה שצריך.
נראה לי שכדאי לקחת בחשבון שגם אם התמונה הסופית לא נראית מושלמת, לא בטוח שזה באג בתוכנית אלא בעיה אחרת שקשורה אולי לפורמט.
אני הגשתי את התרגיל שלי עם עיוות בתמונה שנראה כמו באג ובסוף קיבלתי את כל הנקודות... למרות שאולי הבודקים פשוט התייאשו ונמאס להם לבדוק את הכל Smile
avatar
talmidonet
by ref
by ref

מספר הודעות : 12
Join date : 10.05.09
Age : 31
מיקום : תל אביב

צפה בפרופיל המשתמש http://talmido.net/

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  Admin on Mon Jun 01, 2009 1:03 am

התוכנית הזאת הוציאה לי את המיץ!!!

ועכשיו אתם חייבים לגלות לי איך אתם כותבים את ה"קוד" הזה בהודעות שלכם!!
bounce
avatar
Admin
Admin

מספר הודעות : 62
Join date : 08.04.09
Age : 32

צפה בפרופיל המשתמש http://csmta.forumhebrew.com

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  talmidonet on Mon Jun 01, 2009 4:50 am


כן, זאת חתיכת שאלה. Mad
ככה כותבים בלוק של קוד (רק שים לב שהוספתי רווח ליד המילה "קוד" כדי שלא יהפוך באמת לבלוק של קוד...)
י
[code ]
for (int i = ....
[/code]


avatar
talmidonet
by ref
by ref

מספר הודעות : 12
Join date : 10.05.09
Age : 31
מיקום : תל אביב

צפה בפרופיל המשתמש http://talmido.net/

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  Admin on Mon Jun 01, 2009 5:31 am

קוד:
CODE
אוקיי עובד
avatar
Admin
Admin

מספר הודעות : 62
Join date : 08.04.09
Age : 32

צפה בפרופיל המשתמש http://csmta.forumhebrew.com

חזרה למעלה Go down

...

הודעה  chenmesika on Wed Jun 03, 2009 5:38 am

איזה מגניב.. גם אני רוצה!

קוד:

בעעעעעעע.....
avatar
chenmesika
by ref
by ref

מספר הודעות : 18
Join date : 13.04.09

צפה בפרופיל המשתמש

חזרה למעלה Go down

Re: שאלה 2 ג.

הודעה  Admin on Thu Jun 04, 2009 5:23 am

קוד:
מה אתה נדחף יא דועחף??
avatar
Admin
Admin

מספר הודעות : 62
Join date : 08.04.09
Age : 32

צפה בפרופיל המשתמש http://csmta.forumhebrew.com

חזרה למעלה Go down

צפה בנושא הקודם צפה בנושא הבא חזרה למעלה


 
Permissions in this forum:
אתה לא יכול להגיב לנושאים בפורום זה