رفتن به مطلب

ارسال های توصیه شده

سلام به همه ی دوستان نواندیش

می خوام ازتون خواهش کنم که بیاید تا با هم پردازش تصویر با نرم افزار متلب رو یاد بگیریم

هر چی بلدین بریزید وسط

 

سلام

مثلا چه شکلی، بیشتر توضیح میدین؟

 

یه سری فایل های آموزشی توی همین بخش هست، اونا رو دیدن؟

لینک به دیدگاه
سلام

مثلا چه شکلی، بیشتر توضیح میدین؟

 

یه سری فایل های آموزشی توی همین بخش هست، اونا رو دیدن؟

 

مثلا هر بار یه بخشی رو انتخاب کنیم در موردش بحث کنم مثل انواع نویز ها یا فیلتر کردن تصویر ها

لینک به دیدگاه
منظورم یاد گرفتن کد های مربوط به پردازش تصویر هست و نکته هایی که باید رعایت کنیم توی نوشتن کدها

یادگیری و فهم الگوریتم های موجود در حوزه پردازش تصویر یه چیزه

استفاده از آنها چیز دیگر

 

بیشتر الگوریتم ها ، تصاویر را به صورت ماتریس هایی از اعداد تعریف می کند و این الگوریتم ها روی این ماتریس ها محاسباتی را انجام می دهند

مثلا الگوریتم های خواندن تصویر و بدست آوردن مقدار پیسکلی یک / چند نقطه خاص از تصویر

تغییر اندازه تصویر

چرخش تصویر

convert کردن رنگهای تصویر ( منظورم کم کردن مقدار عددی هر پیکسل از عدد 255 )

فشرده سازی تصویر

رمز گذاری تصویر

تبدیل تصویر به نوشته متنی

و....

اگر در زبان برنامه نویسی مورد نظرتون مهارت داشته باشید پیاده کردن این الگوریتم ها کار چندان مشکلی نیست

لینک به دیدگاه

این یه جزوه به زبان ساده مفاهیم اولیه پردازش تصویر رو همراه با مثال و توابع کاربردی در متلب آموزش میده

اینو ببینید اگه مشکلی داشتید دوستان متلبی راهنمایی تون می کنن

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
  • 2 ماه بعد...

سلام دوستان

میشه لطفا راهنمایی کنید منظور از این کد چیه؟


jobj = jpeg_read(COVER); % JPEG image structure
nzAC = nnz(DCT)-nnz(DCT(1:8:end,1:8:end));
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

رو متوجه نمیشم!

لینک به دیدگاه
سلام دوستان

میشه لطفا راهنمایی کنید منظور از این کد چیه؟


jobj = jpeg_read(cover); % jpeg image structure
nzac = nnz(dct)-nnz(dct(1:8:end,1:8:end));
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

رو متوجه نمیشم!

 

سلام

این فانکشن dct چی رو حساب می کنه؟ یا اینکه متغیر هست اصلا؟

لینک به دیدگاه
سلام

این فانکشن dct چی رو حساب می کنه؟ یا اینکه متغیر هست اصلا؟

نه متغیر نیست، خودش گفنه که ضرایب ac dct غیر صفر تصویر رو محاسبه می کنه!

لینک به دیدگاه

[quote name='Imaaan']کدش رو می تونین بذارین؟[/QUOTE]
بفرما اینم کد، چیزی در مورد DCT ننوشته، فک کنم از تابع خود متلب استفاده می کنه.
[LEFT][CODE]
function [nzAC,changes] = nsf5_simulation(COVER,STEGO,ALPHA,SEED)
% -------------------------------------------------------------------------
% Contact: jan@kodovsky.com | June 2011
% -------------------------------------------------------------------------
% This program simulates the embedding impact of the steganographic
% algorithm nsF5 [1] as if the best possible coding was used. Please, visit
% the webpage [url]http://dde.binghamton.edu/download/nsf5simulator[/url] for more
% information.
% -------------------------------------------------------------------------
% Input:
% COVER - cover image (grayscale JPEG image)
% STEGO - resulting stego image that will be created
% ALPHA - relative payload in terms of bits per nonzero AC DCT coefficient
% SEED - PRNG seed for the random walk over the coefficients
% Output:
% nzAC - number of nonzero AC DCT coefficients in the cover image
% embedding_efficiency - bound on embedding efficiency used for simulation
% changes - number of changes made
% -------------------------------------------------------------------------
% References:
% [1] J. Fridrich, T. Pevny, and J. Kodovsky, Statistically undetectable
% JPEG steganography: Dead ends, challenges, and opportunities. In J.
% Dittmann and J. Fridrich, editors, Proceedings of the 9th ACM
% Multimedia & Security Workshop, pages 3-14, Dallas, TX, September
% 20-21, 2007.
% -------------------------------------------------------------------------
% Note: The program requires Phil Sallee's MATLAB JPEG toolbox available at
% [url]http://www.philsallee.com/[/url]
% -------------------------------------------------------------------------

%%% load the cover image
try
jobj = jpeg_read(COVER); % JPEG image structure
DCT = jobj.coef_arrays{1}; % DCT plane
catch
error('ERROR (problem with the cover image)');
end
code=0;
if ALPHA>0
%%% embedding simulation
embedding_efficiency = ALPHA/invH(ALPHA); % bound on embedding efficiency
nzAC = nnz(DCT)-nnz(DCT(1:8:end,1:8:end)); % number of nonzero AC DCT coefficients
changes =ceil(ALPHA*nzAC/embedding_efficiency); % number of changes nsF5 would make on bound
end
if code==0
changeable = (DCT~=0); % mask of all nonzero DCT coefficients in the image
changeable(1:8:end,1:8:end) = false; % do not embed into DC modes
changeable = find(changeable); % indexes of the changeable coefficients
rand('state',SEED); % initialize PRNG using given SEED
changeable = changeable(randperm(nzAC)); % create a pseudorandom walk over nonzero AC coefficients
to_be_changed = changeable(1:changes); % coefficients to be changed
DCT(to_be_changed) = DCT(to_be_changed)-sign(DCT(to_be_changed)); % decrease the absolute value of the coefficients to be changed

%%% save the resulting stego image
try
jobj.coef_arrays{1} = DCT;
jobj.optimize_coding = 1;
jpeg_write(jobj,STEGO);
catch
error('ERROR (problem with saving the stego image)')
end
end
function res = invH(y)
% inverse of the binary entropy function
to_minimize = @(x) (H(x)-y)^2;
res = fminbnd(to_minimize,eps,0.5-eps);

function res = H(x)
% binary entropy function
res = -x*log2(x)-(1-x)*log2(1-x);

[/CODE]
[/LEFT]

لینک به دیدگاه
بفرما اینم کد، چیزی در مورد DCT ننوشته، فک کنم از تابع خود متلب استفاده می کنه.


function [nzAC,changes] = nsf5_simulation(COVER,STEGO,ALPHA,SEED)
% -------------------------------------------------------------------------
% Contact: jan@[url="http://www.noandishaan.com/forums/member.php?u=49749"]kodo[/url]vsky.com | June 2011
% -------------------------------------------------------------------------
% This program simulates the embedding impact of the steganographic
% algorithm nsF5 [1] as if the best possible coding was used. Please, visit
% the webpage [url]http://dde.binghamton.edu/download/nsf5simulator[/url] for more
% information.
% -------------------------------------------------------------------------
% Input:
% COVER - cover image (grayscale JPEG image)
% STEGO - resulting stego image that will be created
% ALPHA - relative payload in terms of bits per nonzero AC DCT coefficient
% SEED - PRNG seed for the random walk over the coefficients
% Output:
% nzAC - number of nonzero AC DCT coefficients in the cover image
% embedding_efficiency - bound on embedding efficiency used for simulation
% changes - number of changes made
% -------------------------------------------------------------------------
% References:
% [1] J. Fridrich, T. Pevny, and J. Kodovsky, Statistically undetectable
% JPEG steganography: Dead ends, challenges, and opportunities. In J.
% Dittmann and J. Fridrich, editors, Proceedings of the 9th ACM
% Multimedia & Security Workshop, pages 3-14, Dallas, TX, September
% 20-21, 2007.
% -------------------------------------------------------------------------
% Note: The program requires Phil Sallee's MATLAB JPEG toolbox available at
% [url]http://www.philsallee.com/[/url]
% -------------------------------------------------------------------------

%%% load the cover image
try
jobj = jpeg_read(COVER); % JPEG image structure
DCT = jobj.coef_arrays{1}; % DCT plane
catch
error('ERROR (problem with the cover image)');
end
code=0;
if ALPHA>0
%%% embedding simulation
embedding_efficiency = ALPHA/invH(ALPHA); % bound on embedding efficiency
nzAC = nnz(DCT)-nnz(DCT(1:8:end,1:8:end)); % number of nonzero AC DCT coefficients
changes =ceil(ALPHA*nzAC/embedding_efficiency); % number of changes nsF5 would make on bound
end
if code==0
changeable = (DCT~=0); % mask of all nonzero DCT coefficients in the image
changeable(1:8:end,1:8:end) = false; % do not embed into DC modes
changeable = find(changeable); % indexes of the changeable coefficients
rand('state',SEED); % initialize PRNG using given SEED
changeable = changeable(randperm(nzAC)); % create a pseudorandom walk over nonzero AC coefficients
to_be_changed = changeable(1:changes); % coefficients to be changed
DCT(to_be_changed) = DCT(to_be_changed)-sign(DCT(to_be_changed)); % decrease the absolute value of the coefficients to be changed

%%% save the resulting stego image
try
jobj.coef_arrays{1} = DCT;
jobj.optimize_coding = 1;
jpeg_write(jobj,STEGO);
catch
error('ERROR (problem with saving the stego image)')
end
end
function res = invH(y)
% inverse of the binary entropy function
to_minimize = @(x) (H(x)-y)^2;
res = fminbnd(to_minimize,eps,0.5-eps);

function res = H(x)
% binary entropy function
res = -x*log2(x)-(1-x)*log2(1-x);


 

DCT متغیر هست دیگه، شاید مثلا بلوکاش 8 در 8 بوده، این خونه ها مولفه کد dct هر بلوک باشن.

لینک به دیدگاه
ببخشین، انقد کد جلوم هست قاطی کردم!

یعنی چی متوجه نشدم؟

 

سلام.

میبخشید فرصت نکردم زیاد مطالبتون رو بخونم اما متوجه شدم که سوالتون ظاهرا در مورد DCT هست.

 

 

 

اما DCT اونطور که یادمه ظرایب DC,AC رو تصویر رو تجزیه می کنه و معمولا تو فشرده سازیا کاربرد داره.

 

DC , Ac برای ما Spatial freqency (میزان تغییراتی که در اون بلاک اتفاق میوقته رو نمایش میده).

 

 

بجای DCT از DFT(همون تبدیل فوریه) هم استفاده می کنن.

DFT تصویر رو بلاک بلاک تر می کنه.

 

نمیدونم مفید بود یا نه.

لینک به دیدگاه
سلام.

میبخشید فرصت نکردم زیاد مطالبتون رو بخونم اما متوجه شدم که سوالتون ظاهرا در مورد DCT هست.

 

 

 

اما DCT اونطور که یادمه ظرایب DC,AC رو تصویر رو تجزیه می کنه و معمولا تو فشرده سازیا کاربرد داره.

 

DC , Ac برای ما Spatial freqency (میزان تغییراتی که در اون بلاک اتفاق میوقته رو نمایش میده).

 

 

بجای DCT از DFT(همون تبدیل فوریه) هم استفاده می کنن.

DFT تصویر رو بلاک بلاک تر می کنه.

 

نمیدونم مفید بود یا نه.

 

سلام عزیزم،

ممنون:icon_gol:

در واقع این کد

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

رو متوجه نمیشم!

لینک به دیدگاه
ببخشین، انقد کد جلوم هست قاطی کردم!

یعنی چی متوجه نشدم؟

 

شما ببخشین، اشتباه تایپ کردم.:icon_pf (34):

 

DCT توی این کد که متغیر هست نه فانکشن، اما اون کدی که 8 تا 8 تا میره جلو چی هست، میگم احتمالا ابعاد بلوک ها برای محاسبه dct هشت در هشت در نظر گرفته شده، این مولفه هایی که دارن توی این ماتریس آدرس دهی میشن، همون ضریب اول dct هر این بلوک ها هستن یا به عبارت دیگه مولفه dc هر کدوم از بلوک ها میشه.

لینک به دیدگاه
شما ببخشین، اشتباه تایپ کردم.:icon_pf (34):

 

DCT توی این کد که متغیر هست نه فانکشن، اما اون کدی که 8 تا 8 تا میره جلو چی هست، میگم احتمالا ابعاد بلوک ها برای محاسبه dct هشت در هشت در نظر گرفته شده، این مولفه هایی که دارن توی این ماتریس آدرس دهی میشن، همون ضریب اول dct هر این بلوک ها هستن یا به عبارت دیگه مولفه dc هر کدوم از بلوک ها میشه.

به نظر شما هدف از این کار چی بوده؟

لینک به دیدگاه
به نظر شما هدف از این کار چی بوده؟

 

خب جمله اول تعداد ضرایب غیر صفر رو می شمره، بعد توی جمله دوم اومده تعداد ضرایب غیر صفر DC رو حذف کرده، که فقط تعداد ضرایب غیر صفر و غیر DC رو داشته باشه.:a030:

لینک به دیدگاه

سلام

من میخوام خروجی یه تابعی رو یه جایی ذخیره کنم حالا میخوام اسم خروجی تابع، اسم فانکشن باشه. چطور میتونم اینکارو انجام بدم؟

لینک به دیدگاه
سلام

من میخوام خروجی یه تابعی رو یه جایی ذخیره کنم حالا میخوام اسم خروجی تابع، اسم فانکشن باشه. چطور میتونم اینکارو انجام بدم؟

 

سلام

بیشتر توضیح میدین؟

اسم خروجیتون همیشه می خواین یه چی باشه یا نه مثلا به زمان وابسته بشه؟

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...