ورود

View Full Version : سوال: Colorize در دلفی؟!



mbshareat
سه شنبه 08 تیر 1389, 01:32 صبح
از کجا می تونم کد تبدیل عکس سیاه و سفید به رنگی با تعیین HUE پیدا کنم؟
من خودم خیلی گشتم هم Colorize و هم Hue توی گوگل جستجو دادم.اما به نظر می رسه کسی کدی ننوشته.
من این کد رو برای این می خوام که به کاربر اجازه بدم رنگ ظاهری شکل رو خودش تعیین کنه.
اگه کسی کدش رو داره لطفا بذاره!
این هم کد کم یاب تغییر اندازه تصویر با روشی متفاوت از StretchDraw که افت کیفیت کمتری داره و نسبتا کنده و بعد از تغییر اندازه به کد Sharpen نیاز می شه که البته خیلی کش نداره(من کد دیگه ای هم دارم که گیج کننده بود و جدا سازیSharpen از بقیه کد سخت بود) .
اگه بدردتونمی خوره بردارین:

Felony
سه شنبه 08 تیر 1389, 06:25 صبح
ببین این به دردت میخوره :

type
TRGB = record
B : byte;
G : byte;
R : byte;
end;

THLS = record
H : byte;
L : byte;
S : byte;
end;

// ------------------------------------------------------ //
function RGBToHLS(PRGB: TRGB): THLS;
var
LR, LG, LB, LMin, LMax, LDif : byte;
LH, LL, LS, LSum : integer;
begin
LR := PRGB.R;
LG := PRGB.G;
LB := PRGB.B;
LMin := min3(LR,LG,LB);
LMax := max3(LR,LG,LB);
LDif := LMax - LMin;
LSum := LMax + LMin;
LL := LSum shr 1;
if LMin = LMax then
begin
LH := 0;
LS := 0;
Result.H := LH;
Result.L := LL;
Result.S := LS;
exit;
end;
If LL < 128 then
LS := LDif shl 8 div LSum
else
LS := LDif shl 8 div (512 - LSum);
if LS > 255 then LS := 255;

If LR = LMax then
LH := (LG - LB) shl 8 div LDif
else if LG = LMax then
LH := 512 + (LB - LR) shl 8 div LDif
else
LH := 1024 + (LR - LG) shl 8 div LDif;

Result.H := LH div 6;
Result.L := LL;
Result.S := LS;
end;
// ------------------------------------------------------ //
function HLSToRGB(PHLS: THLS): TRGB;
Var
LH, LL, LS : byte;
LR, LG, LB, L1, L2, LDif, L6Dif : integer;
begin
LH := PHLS.H;
LL := PHLS.L;
LS := PHLS.S;

if LS = 0 then
begin
Result.R := LL;
Result.G := LL;
Result.B := LL;

Exit;
end;

if LL < 128 then
L2 := LL * (256 + LS) shr 8
else
L2 := LL + LS - LL * LS shr 8;

L1 := LL shl 1 - L2;
LDif := L2 - L1;
L6Dif := LDif * 6;
LR := LH + 85;

if LR < 0 then Inc(LR, 256);
if LR > 256 then Dec(LR, 256);

If LR < 43 then
LR := L1 + L6Dif * LR shr 8
else if
LR < 128 then LR := L2
else if
LR < 171 then LR := L1 + L6Dif * (170 - LR) shr 8
else
LR := L1;

if LR > 255 then LR := 255;
LG := LH;
if LG < 0 then Inc(LG, 256);
if LG > 256 then Dec(LG, 256);
If LG < 43 then
LG := L1 + L6Dif * LG shr 8
else if
LG < 128 then LG := L2
else if
LG < 171 then LG := L1 + L6Dif * (170 - LG) shr 8
else
LG := L1;

if LG > 255 then LG := 255;
LB := LH - 85;
if LB < 0 then Inc(LB, 256);
if LB > 256 then Dec(LB, 256);
if LB < 43 then
LB := L1 + L6Dif * LB shr 8
else if LB < 128 then
LB := L2
else if LB < 171 then
LB := L1 + L6Dif * (170 - LB) shr 8
else
LB := L1;

if LB > 255 then LB := 255;

Result.R := LR;
Result.G := LG;
Result.B := LB;
end;
// ------------------------------------------------------ //
function max3(P1,P2,P3: byte): byte;
begin
if (P1 > P2) then
begin
if (P1 > P3) then
begin
Result := P1;
end
else
begin
Result := P3;
end;
end
else if P2 > P3 then
begin
result := P2;
end
else
result := P3;
end;
// ------------------------------------------------------ //
function min3(P1, P2, P3: byte): byte;
begin
if (P1 < P2) then
begin
if (P1 < P3) then
begin
Result := P1;
end
else
begin
Result := P3;
end;
end
else if P2 < P3 then
begin
result := P2;
end
else
result := P3;
end;
// ------------------------------------------------------ //
function RGBToColor(PR,PG,PB: Integer): TColor;
begin
Result := TColor((PB shl 16) + (PG shl 8) + PR);
end;
// ------------------------------------------------------ //
function ColorToRGB(PColor: TColor): TRGB;
begin
Result.R := PColor and $000000FF;
Result.G := (PColor and $0000FF00) shr 8;
Result.B := (PColor and $00FF0000) shr 16;
end;
// ------------------------------------------------------ //
function RGBToCol(PRGB: TRGB): TColor;
begin
Result := RGBToColor(PRGB.R, PRGB.G, PRGB.B);
end;

مصطفی ساتکی
سه شنبه 08 تیر 1389, 07:25 صبح
از کجا می تونم کد تبدیل عکس سیاه و سفید به رنگی با تعیین HUE پیدا کنم
دوست عزیز تبدیل عکس سیاه و سفید به رنگی جزء مباحث خاص شبکه های عصبی (Self Organizing)و برای هر نوع تصویری و هر پیچیدگی تصویری قابل پیاده سازی نیست و معمولا در تصویر منظره از همچین شبکه هایی استفاده میشه.البته اگر شما مورد خاصی مدنظر تون باشه میشه شبکه رو تو اون زمینه train کرد.

من خودم خیلی گشتم هم Colorize و هم Hue توی گوگل جستجو دادم.اما به نظر می رسه کسی کدی ننوشته
رنگی نمودن تصویر سیاه سفید رابطه مستقیمی با دستگاری hue تصویر نداره در سیستم هایی رنگی HSI و HSV تغییر hue یعنی تغییر رنگ دانه های تصویری نه عمل Colorize.

این هم کد کم یاب تغییر اندازه تصویر با روشی متفاوت از StretchDraw که افت کیفیت کمتری داره و نسبتا کنده و بعد از تغییر اندازه به کد Sharpen نیاز می شه که البته خیلی کش نداره(من کد دیگه ای هم دارم که گیج کننده بود و جدا سازیSharpen از بقیه کد سخت بود) .
این جریان افت کیفیت نیست بلکه به اون نحوه resampling کردن تصویر یا درونیابی تصویر گفته میشه که خود StretchBlt هم پارامترهایی مختلفی برای اینکار داره که شما حتما با پارامتر پیش فرض اینکارو انجام دادید که نتیجه تصویری بدی هم داره. resampling های معروف bicubic و biliner و Spline و nearst-neighbor هستند

SAASTN
سه شنبه 08 تیر 1389, 09:43 صبح
کجا می تونم کد تبدیل عکس سیاه و سفید به رنگی با تعیین HUE پیدا کنم؟
منظورت همچین چیزیه؟
البته روالی که نوشتم مقادیر طیف رنگ، روشنایی و غنای رنگ (HLS) تصویر رو به یک میزان تغییر میده و روی عکس های رنگی هم تاثیر میذاره.

mbshareat
سه شنبه 08 تیر 1389, 14:21 عصر
از همه رفقا ممنونم واقعا فکر نمی کردم کسی جواب درست و حسابی بده.
من نمی خوام تصویر سیاه و سفیدم رو مثل کار با BlackMagic رنگی کنم یا مثل رنگی کردن فیلم لورل و هاردی:لبخند:!
منظورم همون کاریه که توی فتوشاپ و گیمپ خیلی ساده انجام می شه که توی فایل زیپ دوستمون هست:چشمک:(گرچه یه ته رنگ ارائه نمی ده و مثلا سرخابی و آبی توی یه تصویر ارائه می ده!)
جناب Delphi_CAT اگه می شه بیشتر در مورد انحاء دیگر به کار بردن StretchBelt توضیح بدین یا یه کد بذارین که بدون افت کیفیت تصویر رو کوچک یا بزرگ کنه (با جمع زدن رنگ پیکسلها و تقسیم بر عدد مشخص:متفکر:)
اگه می شه معنی Colorize رو هم بفرمایین چون توی Gimp Portable که دارم معنی تنظیم HUE و اشباع رنگ و روشنایی رنگ رو می ده!
در ضمن من هم قبلا فهمیده ام که هنگام جمع زدن رنگ به سایه خاکستری سبز خالص روشنتر از قرمز و قرمز روشنتر از آبی هست و می تونیم با داشتن رنگ در نوار HUE نسبت هریک از سه طیف رنگ رو نسبت به مجموع نسبتها بسنجیم و ...(آبی:0.3 و سبز: 0.59 و قرمز:0.11 )
در هر صورت اگه دوست داشتین این رو هم بردارین::گیج:
افکتهای گرافیکی متنوع (http://jansfreeware.com/jandraw.zip)
که این کارها رو روی تصویر انجام می ده:Sharpen و SmoothResize و SmoothRotate و Saturation و AntiAlias و GrayScale و FishEye قابل توجه هستند!:لبخندساده:)

procedure Solorize(src,dst:tbitmap;amount:integer);
procedure Posterize(src,dst:tbitmap;amount:integer);
procedure Blend(src1,src2,dst:tbitmap;amount:extended);
procedure ExtractColor(src:TBitmap;Acolor:tcolor);
procedure ExcludeColor(src:TBitmap;Acolor:tcolor);
procedure turn(src,dst:tbitmap);
procedure turnRight(src,dst:Tbitmap);
procedure HeightMap(src:Tbitmap;amount:integer);
procedure TexturizeTile(src:TBitmap;amount:integer);
procedure TexturizeOverlap(src:TBitmap;amount:integer);
procedure RippleRandom(src:TBitmap;amount:integer);
procedure RippleTooth(src:TBitmap;amount:integer);
procedure RippleTriangle(src:TBitmap;amount:integer);
procedure Triangles(src:TBitmap;amount:integer);
procedure DrawMandelJulia(src: Tbitmap; x0, y0, x1, y1: extended;
Niter: integer; Mandel: Boolean);
procedure filterxblue(src: tbitmap; min, max: integer);
procedure filterxgreen(src: tbitmap; min, max: integer);
procedure filterxred(src: tbitmap; min, max: integer);
procedure filterblue(src: tbitmap; min, max: integer);
procedure filtergreen(src: tbitmap; min, max: integer);
procedure filterred(src: tbitmap; min, max: integer);
procedure Emboss(var Bmp: TBitmap);
procedure Plasma(src1,src2,dst:Tbitmap;scale,turbulence:exte nded);
procedure Shake(src,dst:Tbitmap;factor:extended);
procedure ShakeDown(src,dst:Tbitmap;factor:extended);
procedure KeepBlue(src:Tbitmap;factor:extended);
procedure KeepGreen(src:Tbitmap;factor:extended);
procedure KeepRed(src:Tbitmap;factor:extended);
procedure MandelBrot(src:Tbitmap;factor:integer);
procedure MaskMandelBrot(src:Tbitmap;factor:integer);
procedure FoldRight(src1,src2,dst:Tbitmap;amount:extended);
procedure QuartoOpaque(src, dst: tbitmap);
procedure semiOpaque(src, dst: Tbitmap);
procedure ShadowDownLeft(src: tbitmap);
procedure ShadowDownRight(src: tbitmap);
procedure shadowupleft(src: Tbitmap);
procedure shadowupright(src: tbitmap);
procedure Darkness(var src: tbitmap; Amount: integer);
procedure Trace(src:Tbitmap;intensity:integer);
procedure FlipRight(src:Tbitmap);
procedure FlipDown(src:Tbitmap);
procedure SpotLight(var src:Tbitmap; Amount:integer;Spot:TRect);
procedure splitlight(var clip: tbitmap; amount: integer);
procedure MakeSeamlessClip(var clip: tbitmap; seam: integer);
procedure Wave(var clip: tbitmap; amount, inference, style: integer);
procedure Mosaic(var Bm: TBitmap; size: Integer);
function TrimInt(i, Min, Max: Integer): Integer;
procedure SmoothRotate(var Src, Dst: TBitmap; cx, cy: Integer;
Angle: Extended);
procedure SmoothResize(var Src, Dst: TBitmap);
procedure Twist(var Bmp, Dst: TBitmap; Amount: integer);
procedure SplitBlur(var clip:tbitmap;Amount:integer);
procedure GaussianBlur(var clip:tbitmap;Amount: integer);
procedure Smooth(var clip:tbitmap;Weight: Integer);
procedure GrayScale(var clip:tbitmap);
procedure AddColorNoise(var clip:tbitmap;Amount: Integer);
procedure AddMonoNoise(var clip:tbitmap;Amount: Integer);
procedure Contrast(var clip:tbitmap;Amount: Integer);
procedure Lightness(var clip:tbitmap;Amount: Integer);
procedure Saturation(var clip:tbitmap;Amount: Integer);
procedure Spray(var clip:tbitmap;Amount: Integer);
procedure AntiAlias(clip:tbitmap);
procedure AntiAliasRect(clip:tbitmap;XOrigin, YOrigin, XFinal, YFinal: Integer);
procedure SmoothPoint(var clip:tbitmap;xk, yk: integer);
procedure FishEye(var Bmp, Dst: TBitmap; Amount: Extended);
procedure marble(var src, dst: tbitmap; scale: extended;turbulence:integer);
procedure marble2(var src, dst: tbitmap; scale: extended;
turbulence: integer);
procedure marble3(var src, dst: tbitmap; scale: extended;
turbulence: integer);
procedure marble4(var src, dst: tbitmap; scale: extended;
turbulence: integer);
procedure marble5(var src, dst: tbitmap; scale: extended;
turbulence: integer);
procedure marble6(var src, dst: tbitmap; scale: extended;
turbulence: integer);
procedure marble7(var src, dst: tbitmap; scale: extended;
turbulence: integer);
procedure marble8(var src, dst: tbitmap; scale: extended;
turbulence: integer);
procedure squeezehor(src,dst:tbitmap;amount:integer;style:TL ightBrush);
procedure splitround(src,dst:tbitmap;amount:integer;style:TL ightBrush);

procedure tile(src,dst:TBitmap;amount:integer);
// Interpolator
// Src: Source bitmap
// Dst: Destination bitmap
// filter: Weight calculation filter
// fwidth: Relative sample radius
procedure Strecth(Src, Dst: TBitmap; filter: TFilterProc; fwidth: single);
procedure Grow(Src1,Src2,Dst: TBitmap; amount:extended;x,y:integer);
procedure Invert(src:tbitmap);
procedure MirrorRight(src:Tbitmap);
procedure MirrorDown(src:Tbitmap);

SAASTN
سه شنبه 08 تیر 1389, 18:02 عصر
من نمی خوام تصویر سیاه و سفیدم رو مثل کار با BlackMagic رنگی کنم یا مثل رنگی کردن فیلم لورل و هاردی!
منظورم همون کاریه که توی فتوشاپ و گیمپ خیلی ساده انجام می شه که توی فایل زیپ دوستمون هست
با تمام توضیحات من آخرشم نفهمیدم که چیکار می خوای بکنی و چیکار نمی خوای بکنی، یه نمونه عکس بذار ببینم چیه؟

(گرچه یه ته رنگ ارائه نمی ده و مثلا سرخابی و آبی توی یه تصویر ارائه می ده!)
حتما تصویرت کاملا Grayscale نیست. تو photoshop بازش کن و Image>Adjaustment>Desaturate رو بزن save کن دوباره امتحان کن ببین این مشکل هست یا نه.

مصطفی ساتکی
سه شنبه 08 تیر 1389, 19:48 عصر
حتما تصویرت کاملا Grayscale نیست. تو photoshop بازش کن و Image>Adjaustment>Desaturate رو بزن save کن دوباره امتحان کن ببین این مشکل هست یا نه
جناب SAASTN (http://barnamenevis.org/forum/member.php?u=21955) کدی شما قرار دادید فقط رنگدانه یا hue رو تغییر میده و با مبحث colorize که در موردش توضیح دادیم فرق داره این فقط یه تغییر hue.


گه می شه بیشتر در مورد انحاء دیگر به کار بردن StretchBelt توضیح بدین یا یه کد بذارین
شما قبل از اینکه از StretchBlt استفاده کنید قبل از بایستی mode مربوط به sampling رو مشخص نماید با استفاده از تابع api زیر

SetStretchBltMode(MyBitmap.canvas.handle,MAXSTRETC HBLTMODE)

SAASTN
چهارشنبه 09 تیر 1389, 01:50 صبح
کدی شما قرار دادید فقط رنگدانه یا hue رو تغییر میده و با مبحث colorize که در موردش توضیح دادیم فرق داره این فقط یه تغییر hue.
ممنون، Colorize رو هم اضافه کردم، البته شبیه به چیزی که توی Photoshop وجود داره، اگه منظور شما هم همون باشه.

مصطفی ساتکی
چهارشنبه 09 تیر 1389, 07:00 صبح
ممنون، Colorize رو هم اضافه کردم، البته شبیه به چیزی که توی Photoshop وجود داره، اگه منظور شما هم همون باشه.
نه .
یعنی شما این همه مدت فکر می کردید که فتوشاپ یه تصویر Grayscale رو به یکیباره Colorize می کنی.شاید بایستی یه مقدار بیشتر به شما توضیح بدم . شما تصویر grayscale از face افراد رو به نرم افزار تون می دید و نرم افزار به صورت خودکار تصویر رو به صورت کامل رنگی می کنه با توجه به رنگ هر ناحیه . نه اینکه hue تصویر رو جابجا کنه.
این متد رنگی نمودن تصاویر به صورت supervised و متدی که در روشهای قبلی برای تصاویر به صورت عام اعمال میشه که از شبکه Unsupervised استفاده میشه روش دوم بدون ناظر می باشد.

SAASTN
چهارشنبه 09 تیر 1389, 10:17 صبح
نه اینکه hue تصویر رو جابجا کنه.
شما اصلا متوجه تغییر دو تا برنامه اول و دوم شدید؟ کد دوم رو که بررسی نکردید(بازدید تا الان صفره). ولی اگر عکس رو هم مشاهده می فرمودید متوجه می شدید که توی برنامه دوم فقط جابجایی طیف اتفاق نیفتاده. مخصوصا از عکسی استفاده کردم که دو رنگ باشه تا این موضوع مشخص بشه.

یعنی شما این همه مدت فکر می کردید که فتوشاپ یه تصویر Grayscale رو به یکیباره Colorize می کنی.
متوجه منظورتون نشدم؟ توی Photoshop که برای Colorize نیازی نیست تصویر حتما Grayscale باشه، منظور اینه که تصویر برای Colorize چندپاس از داخل یک شبکه عصبی عبور می کنه یا اینکه کلا دو یا چند مرحله از عملیات متفاوت روی تصویر اعمال میشه؟

شما تصویر grayscale از face افراد رو به نرم افزار تون می دید و نرم افزار به صورت خودکار تصویر رو به صورت کامل رنگی می کنه با توجه به رنگ هر ناحیه .
شاید من هنوز متوجه مقصود شما از Colorize نشدم. در نهایت فیلتر مد نظر شما تصویر خروجی رو به یک طیف تبدیل می کنه یا چند طیف. مثلا صورت رو که مثال میزنید طیف لبها از پوست مجزا میشه یا نه؟ اگر قراره که این تصویر به چند طیف تبدیل بشه شبکه عصبی دقیقا باید برای این منظور خاص آموزش دیده باشه، یعنی علاوه بر کار کردن روی رنگها باید اجزای صورت رو هم از هم تشخیص بده. که این کاری نیست که Photoshop میکنه.

مصطفی ساتکی
چهارشنبه 09 تیر 1389, 10:56 صبح
شما اصلا متوجه تغییر دو تا برنامه اول و دوم شدید؟ کد دوم رو که بررسی نکردید(بازدید تا الان صفره). ولی اگر عکس رو هم مشاهده می فرمودید متوجه می شدید که توی برنامه دوم فقط جابجایی طیف اتفاق نیفتاده. مخصوصا از عکسی استفاده کردم که دو رنگ باشه تا این موضوع مشخص بشه.
دوست عزیز من فیلد کاریم پردازش تصویره و اصلاً با thumbnail که از 2 تصویر دیدم میشه تشخیص داد که تغییر hue . ولی به هر حال به خاطر حرف شما یکبار فایل تونو دانلود کردم .
شما به این چند تاپیکی که من زدم به هیچ وجه دقت نمی کنید و مکرر حرف خودتون تکرار می کنید ایرادی نداره ولی به شرط اینکه به جواب جامعی هم منتهی بشه .کد شما رو نگاه کردم همون تغییر hue تصویر .



متوجه منظورتون نشدم؟ توی Photoshop که برای Colorize نیازی نیست تصویر حتما Grayscale باشه، منظور اینه که تصویر برای Colorize چندپاس از داخل یک شبکه عصبی عبور می کنه یا اینکه کلا دو یا چند مرحله از عملیات متفاوت روی تصویر اعمال میشه؟
قربان تبدیل تصویر grayscale به رنگی یعنی Colorize . نه تغییر رنگدونه این صد بار .
فتوشاپ نرم افزار ویرایش تصویر نه نرم افزار تحلیل تصویر و همچین کاری هم انجام نمیده اینها کارهای خاص و در حالت کلی قابل تعمیم نیستند.

SAASTN
چهارشنبه 09 تیر 1389, 14:42 عصر
متوجه منظورتون نشدم؟ توی Photoshop که برای Colorize نیازی نیست تصویر حتما Grayscale باشه، منظور اینه که تصویر برای Colorize چندپاس از داخل یک شبکه عصبی عبور می کنه یا اینکه کلا دو یا چند مرحله از عملیات متفاوت روی تصویر اعمال میشه؟

شاید من هنوز متوجه مقصود شما از Colorize نشدم. در نهایت فیلتر مد نظر شما تصویر خروجی رو به یک طیف تبدیل می کنه یا چند طیف. مثلا صورت رو که مثال میزنید طیف لبها از پوست مجزا میشه یا نه؟ اگر قراره که این تصویر به چند طیف تبدیل بشه شبکه عصبی دقیقا باید برای این منظور خاص آموزش دیده باشه، یعنی علاوه بر کار کردن روی رنگها باید اجزای صورت رو هم از هم تشخیص بده. که این کاری نیست که Photoshop میکنه.
خوشحال می شدم به اینها جواب میدادید. ببینید من کارم پردازش تصویر نیست، از اصطلاحات شما بی خبرم، دارم می پرسم که بتونیم به یه زبون مشترک برسیم. ولی شما توی هر پستتون بجای اینکه یه جواب شفاف بدین که من متوجه بشم همون صحبتهای گنگ رو ادامه می دید.
چیزی که من در مورد Colorize می دونم پنجره Hue/Saturation توی Photoshop هست. اونجا یه Checkbox وجود داره به اسم Colorize. درصورتی که تیک نخورده باشه همون جابجایی طیف روی تصویر اعمال میشه، کاری که توی برنامه اول انجام دادم. اما درصورتی که تیک خورده باشه شدت نوری هر پیکسل رو محاسبه می کنه و اون رو به طیف انتخاب شده اعمال می کنه، توی برنامه دوم این تیک رو اضافه کردم. توی وضعیت اول درصورتی که تصویر ورودی خودش از چند طیف مختلف رنگی تشکیل شده باشه تصویر خورجی هم دارای چند طیفه، ولی در وضعیت دوم خروجی همیشه دارای یک طیفه. این چیزی که من از Colorize می فهمم. حالا شما بگو ما هم بفهمیم، ضمنا توجه داشته باش که به یکی داری توضیح می دی که به اندازه شما تو این زمینه مطالعه نکرده.
در نهایت هم اینکه من با توجه به سوال دوستمون توضیح دادم:

منظورم همون کاریه که توی فتوشاپ و گیمپ خیلی ساده انجام می شه که توی فایل زیپ دوستمون هست

mbshareat
چهارشنبه 09 تیر 1389, 15:43 عصر
از توجه همه دوستان مخصوصا جناب SAASTN ممنونم.:خجالت:
برنامه دوم ایشان دقیقا همونه که می خوام. کد مجتبی تاجیک رو خواستم به کار ببرم اولش گیج شدم ولی به نظرم با روش پیکسل به پیکسل و با به دست آوردن HSL و بعد تغییر هرکدام از این سه عنصر(Hue:طیف رنگ - S: اشباع(میزان خاکستری) - L :درخشندگی(Luminance)) به طور دلخواه بشه یه برنامه البته با سرعت پایینتر از برنامه دوم جناب SAASTN از برنامشون در آورد.:کف:
در ضمن جناب Delphi_CAT گفتم منظورم تشخیص اجزاء تشکیل دهنده تصویر و حدس رنگ متناظر نیست که در برنامه BlackMagic در نسخه های قدیمی صورت می گیره.
منظورم یکپارچه کردن ته رنگ(Tint)تصویره و راستش برای تنظیم ظاهر کامپوننتم می خواستم با تغییر رنگ طرح اولیه کامپوننت توسط کاربر(اگه جناب SAASTN اجازه بدن ازش تو برنامم استفاده کنم:لبخند:)
در هر صورت از راهنمایی جناب Delphi_CAT در مورد StretchBelt هم استفاده کردم.:خجالت:
«چو خواهی که نامت رود در جهان *** مکن نام نیک بزرگان نهان»:قلب:

SAASTN
چهارشنبه 09 تیر 1389, 17:05 عصر
ازش تو برنامم استفاده کنم
خواهش می کنم، اما هدف بیشتر این بوده که با تکنیک مسئله آشنا بشید. و حتما تکنیک های بهتری برای اینکار هست، مثل مسائلی که جناب Delphi_CAT می فرمودند.

مصطفی ساتکی
چهارشنبه 09 تیر 1389, 23:44 عصر
خوشحال می شدم به اینها جواب میدادید. ببینید من کارم پردازش تصویر نیست، از اصطلاحات شما بی خبرم، دارم می پرسم که بتونیم به یه زبون مشترک برسیم. ولی شما توی هر پستتون بجای اینکه یه جواب شفاف بدین که من متوجه بشم همون صحبتهای گنگ رو ادامه می دید.
قربان اگر شبکه عصبی برای شما بحث گنگه برای ما اینطوری نیست.اینجا جمع نشیدیم که جر و بحث کنیم من به شما عرض کردم که روش شما تغییر hue و اینکار با شبکه عصبی انجام میشه شما هی بگو این اینطوری اون انطوری وقتی که بحث علمی رو قبول نمی کنید منجر به چانه زنی 2 طرفه میشه. نتیجه کار یه همچین چیزی میشه . یه نرم افزار تجاری خوب در سال 2003 به نام Black Magic هم در این زمینه تولید شده http://www.black-and-white-to-color.com/.
البته تو زمینه فیلم هم کارهای زیادی شده.

http://www.black-and-white-to-color.com/assets/images/autogen/a_kellysmall.jpghttp://www.black-and-white-to-color.com/assets/images/autogen/a_kelley1smallnew1.jpg

SAASTN
پنج شنبه 10 تیر 1389, 01:31 صبح
قربان اگر شبکه عصبی برای شما بحث گنگه برای ما اینطوری نیست.اینجا جمع نشیدیم که جر و بحث کنیم من به شما عرض کردم که روش شما تغییر hue و اینکار با شبکه عصبی انجام میشه شما هی بگو این اینطوری اون انطوری وقتی که بحث علمی رو قبول نمی کنید منجر به چانه زنی 2 طرفه میشه.
عزیز جان شما مثل اینکه پستهای من رو از دنده لج می خونید؟! بحث علمی رو قبول نمی کنی یعنی چی؟ شما یه دور دیگه پستهات رو بخون ببین کجا بحث علمی کردی؟ بعد من کجا صحبت های شما رو رد کردم که شما برداشت کردی من بحث های شما رو قبول نمی کنم؟؟؟ بنده تو چندتا پست از شما خواستم تا Colorize مد نظر خودتونو توضیح بدین، اما پاسخی نگرفتم:

رنگی نمودن تصویر سیاه سفید رابطه مستقیمی با دستگاری hue تصویر نداره در سیستم هایی رنگی HSI و HSV تغییر hue یعنی تغییر رنگ دانه های تصویری نه عمل Colorize.
Colorize با دستکاری Hue رابطه مستقیم نداره.

جناب SAASTN کدی شما قرار دادید فقط رنگدانه یا hue رو تغییر میده و با مبحث colorize که در موردش توضیح دادیم فرق داره این فقط یه تغییر hue.
Colorize با تغییر رنگندانه فرق می کنه.

یعنی شما این همه مدت فکر می کردید که فتوشاپ یه تصویر Grayscale رو به یکیباره Colorize می کنی.
Photoshop یه تصویر رو یکباره Colorize نمی کنه.

شاید بایستی یه مقدار بیشتر به شما توضیح بدم . شما تصویر grayscale از face افراد رو به نرم افزار تون می دید و نرم افزار به صورت خودکار تصویر رو به صورت کامل رنگی می کنه با توجه به رنگ هر ناحیه .نه اینکه hue تصویر رو جابجا کنه.
توضیحات بیشتر شما: نرم افزار بنده به صورت خودکار تصویر رو Colorize می کنه، ضمنا Colorize با جابجایی Hue فرق داره!

قربان تبدیل تصویر grayscale به رنگی یعنی Colorize . نه تغییر رنگدونه این صد بار
Colorize یعنی تغییر تصویر سیاه و سفید به رنگی (که از اول هم می دونستیم ولی هنوز معلوم نیست با چه کیفیتی، مثلا کد من هم داره یه تصویر سیاه و سفید رو رنگی می کنه ولی نه با کیفیت مد نظر شما)، و یک نکته کلیدی دیگه: Colorize تغییر رنگدونه فرق داره!
قربون شکلت یه نگاه بنداز ببین شما چه بحث علمی ای کردی؟ فقط هی تکرار کردی که Colorize با جابجایی Hue فرق داره، خوب قبول، به خدا قبول، فهمیدیم که Colorize تغییر طیف نیست، حالا چی هست؟! ده جا حدس زدم، منظورتون اینه؟ منظورتون اونه؟ هیچ جوابی نمی دی. آخرش اومدی می گی بحث علمی رو قبول نمی کنی!
بعد بنده کجا حرفهای شما رو رد کردم؟ من هی می گم آقا من نمی فهمم، من پردازش تصویر کار نکردم، تعریف من از Colorize در حد تعریف Photoshopه، فرض کن برا کسی توضیح می دی که به اندازه شما نخونده... اینا یعنی من دارم می گم اینطوری و اونطوری و جرو بحث می کنم و فرمایش شما رو رد می کنم؟
آقا جون اینجا یه سایت آموزشیه، شما وقتی داری مطلبی رو توضیح می دی باید فرض رو بر این بذاری که طرفت هیچی تو اون زمینه بلد نیست، یکم بیشتر حوصله کنی و مطلب رو بیشتر باز کنی. همون عکسی که آخر سر گذاشتی رو اگه اول میذاشتی بنده متوجه می شدم مقصود شما چیه. در نهایت اینکه بنده هیچ جا قصد بگو مگو و جسارت به محضر شما رو نداشتم و فقط می خواستم یه چیزی یاد بگیرم، اما نمی دونم شما دقیقا از کدوم جمله من همچین برداشتی کردی، به هر صورت عذرخواهی می کنم.

mbshareat
پنج شنبه 10 تیر 1389, 08:42 صبح
با سلام به دوستان !
بنده همون اول هم به گفته های جناب Delphi_CAT اشاره کردم(رنگی کردن فیلم شبیه استفاده از Black Magic هست تا برنامه مفید جناب SAASTN)
ببخشید ولی فکر می کنم بحث نیازی به این تعابیر نداشت:

پستهای من رو از دنده لج می خونید؟!

این صد بار
در هر صورت از اینکه وقت گذاشتین تاپیک منو جواب دادین ممنونم.
راستش من Black Magic رو هم نصب کردم ولی قابلیت فوق العاده ای توش ندیدم که به شبکه عصبی و غیره بشه ربطش داد(گرچه من که نمی دونم این تعابیر یعنی چی؟!)
چیزی که تو این برنامه انجام می شه عملا مثل تغییر Hue به نظر می رسه اما تو توضیحاتی که در فایل ورد کنار برنامه دیدم این بود که نسخه های قبلی این نرم افزار استرالیایی تمام کار رنگی کردن رو اتوماتیک انجام می داده که چون رنگ مناسب رو پیدا نمی کرده این روند متوقف شده و در حال حاضر توی Black Magic یه قلمو داریم که هرجا بکشیم رنگهای اونجا رو عوض می کنه (به نظرم تو فتو شاپ هم دیدم) مثل سوزاندن و ترسیم فرانما و شفاف تو فتوشاپ.
در آخر لازم می دونم از همه اساتیدم تشکر کنم که لطف کردن بحثهای خوبی رو مطرح کردن.
----------------
از حضرت علی (ع):
رأی و نظر خود را متهم بدانید ( و بیشتر دقت کنید ) چه بسا اعتماد کردن به آن اشتباه به بار آرد
نقل از برنامه رایگان 810 حدیث(غرر الحکم ص 56 حدیث 517)