עבור לתוכן

שאלה

Featured Replies

פורסם

אני רוצה לקחת תמונה ולשבש אותה כלומר לשנות את הביטים שלה כך שהיא תיראה מטושטשת בעזרת לולאה איך עושים זאת???

פורסם

באיזו שפה/סביבת עבודה אתה משתמש?

לתמונה אין ביטים. לקובץ יש. אולי התכוונת לפיקסלים?

פורסם

אם אתה מדבר על הפיקסלים, אז אתה יכול לעשות משהו שדומה ל-Anti-Aliasing - כלומר, לקחת זיכרון נוסף, בגודל של התמונה, ולתת שם לכל פיקסל, את הערך הממוצע של כל הפיקסלים שמסביב לאותו פיקסל, כולל את הפיקסל עצמו (אולי במשקל עצמי קצת גבוה יותר, תעשה עם זה ניסויים). כמובן, בגבולות צריך לעשות עבודה שונה קצת (עדיין ממוצע, אבל אין את כל הפיקסלים מסביב).

בסוף תיקח את הזיכרון הזה ותעתיק אותו לתוך הזיכרון של התמונה, ותשמור.

פורסם

לתמונה אין ביטים. לקובץ יש. אולי התכוונת לפיקסלים?

כל פיקסל מורכב ממספר ביטים תלוי באיכות התמונה

לדוגמה: תמונה בשחו ולבן כל פיקסל מורכב מביט אחד כלומר או שהביט שווה ל0 ואז זה שחור (בדרך כלל נותן להגדרה)

או שהביט שווה ל1 ואז זה לבן

וכך הלאה ומפה בא תמונה של 16 ,24 ,32 סיביות שזה בעצם גם ביטים שכל פיקסל בנוי ממספר הביטים

פורסם

גם לא. יש תמונות וקטוריות, פרקטליות.

אתה מדבר על bitmap.

פורסם

גם לא. יש תמונות וקטוריות, פרקטליות.

אתה מדבר על bitmap.

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

בסופו של דבר, תמונה היא bitmap.

פורסם

נו, סמנטיקה.

בשבילי תמונה היא bitmap רק אחרי שציירת אותה על מסך.

מבחינתי אתה יכול לצייר את אותה תמונה ברזולוציות שונות ולקבל שני bitmaps שונים.

פורסם

נכון. אבל המניפולציות שהוא מדבר עליהן מאוד קשות (אם לא בלתי אפשריות) כשלא מתעסקים עם מערך של פיקסלים, אלא עם צורה אחרת של שמירה של התמונה.

מניפולציות מהסוג הזה צריך לעשות על bitmap. כל צורה אחרת לא ממש מעניינת בהקשר הזה, לדעתי.

ל- talgold :

מה בדיוק אתה רוצה לעשות? איפה נמצאת התמונה שעליה אתה רוצה לעשות מניפולציות?

השאלה שלך קשורה לאלגוריתם עצמו, או גם לאיך ממש משנים את הקובץ? כי אם זה תלוי בקובץ, התשובה שונה לגמרי (כמו ש-Boomerang אמר).

פורסם
  • מחבר

מאני רוצה לקחת תומנה ב פורמט BMP לדוגמא ולשנות את ה [] BYTE bitmapBits

כך ש התמונה תהיה מטושטשת כלומר אם טעויות ואז אני מתקן אותה לדוגמא אם קוד המינג

השאלה שלי איך אני מגיע למקטע זה של קוד (איזה תוכנה ??) על מנת לשנות אותו תודה מראש :yelclap:

פורסם

אני לא בטוח שהבנתי את השאלה.

אבל בעיקרון, בפורמט bmp המידע שלך מתחיל מכתובת 0x436 בקובץ. יש לפני זה header.

אתה צריך לקחת את המידע על הפיקסלים משם (כמות המידע וצורתו נשלפת מה-header).

למידע נוסף ראה:

http://atlc.sourceforge.net/bmp.html

לגבי הדבר השני שאמרת.. אני מנסה להבין - אתה רוצה להשתמש באלגוריתם לתיקון שגיאות (קוד המינג) בשביל לבטל את הטישטוש איכשהו? איך אתה מתכון לעשות את זה בדיוק?

ואם זה מה שאתה רוצה לעשות, אז האלגוריתם שאני הצעתי ממש לא יעזור לך, כי אתה מאבד מידע איתו.

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

בקיצור, מה בדיוק אתה רוצה לעשות?

פורסם

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

כל אלגוריתם לתיקון שגיאות מתבסס על יתירות של מידע שלפיו אתה משלים את המידע החסר.

בקודים לתיקון שגיאות, היתירות הזו מוכנסת בתהליך הקידוד.

יש גם כל מיני אלגוריתמים בעיבוד תמונה שמאפשרים לך להשלים חלקים מתמונה לפי חלקים אחרים שלה, אבל זה לא נשמע לי כמו מה שאתה מדבר עליו.

אגב המינג - מרחק 3 בין המילים, המינג מורחב (עם parity) - מרחק 4. לא שזה משנה משהו.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים