DCT филтърно изображение в Matlab

Използвах функцията по-долу, за да филтрирам изображение. По принцип той задава коефициенти на DCT на 0, с изключение на горния ляв елемент 8x8, което означава, че филтрира цялата високочестотна част и оставя само нискочестотната част.

function I_out = em_DCT_filter(I_in,N)

I_trim = double(I_in)-128;

MYDCT=dctmtx(N);
dct = @(block_struct)MYDCT*block_struct.data*MYDCT';
B=blockproc(I_trim,[N,N],dct);

mask = zeros(N,N);
mask(1:N/4,1:N/4)= 1;

AnselmMask = @(block_struct)block_struct.data.*mask;
BMask=blockproc(B,[N N],AnselmMask);

InverseDct = @(block_struct)MYDCT'*block_struct.data*MYDCT;
BReversedl = blockproc(BMask,[N N],InverseDct);

I_out= uint8(BReversedl+128);

След обработка изображението изглежда така: преди филтърafter filter Имам нужда от функцията, която премахва детайлите в изображението (напр. шарки по пуловера, сянка върху панталоните), което изглежда работи добре. Функцията обаче също така прави изображението много размито. Как мога да премахна подробностите, както и да запазя ясна структурата на региона? Например областта на пуловера/панталоните ще бъде с по-еднакъв цвят от преди.


person realmq    schedule 07.11.2014    source източник
comment
Трябва ли да използвате DCT? Защо не можете просто да замъглите изображението с пространствено филтриране?   -  person rayryeng    schedule 07.11.2014


Отговори (1)


Основно сте приложили „Локален нискочестотен филтър“.
Нищо чудно, че резултатът е „размит“ вид, премахнали сте данни във високата честота, която обикновено тълкуваме като детайли и „Острота“.

Това, което наистина трябва да направите, е да премахнете високочестотните детайли, но да запазите големите ръбове в такт.
Добър начин да направите това е да използвате нещо като анизотропна дифузия.
Като използвате оптимизираните параметри, ще можете да постигнете вида, който искате 'след.
Като цяло тези методи се наричат ​​абстракции на изображения.

Ето страхотен код с отворен код за разширена анизотропна дифузия:

https://github.com/RoyiAvital/Fast-Anisotropic-Curvature-Preserving-Smoothing

Работете с, ако можете да допринесете, би било невероятно.

person Royi    schedule 12.11.2014