mirror of
https://github.com/ciromattia/kcc
synced 2025-12-12 17:26:23 +00:00
Fix tint color detection (#1135)
* make color detection even more precise * fix tinted images
This commit is contained in:
@@ -343,7 +343,15 @@ class ComicPage:
|
|||||||
|
|
||||||
# bias adjustment
|
# bias adjustment
|
||||||
SPREAD_THRESHOLD = 5
|
SPREAD_THRESHOLD = 5
|
||||||
if not self.opt.forcecolor and cb_spread < SPREAD_THRESHOLD and cr_spread < SPREAD_THRESHOLD:
|
if self.opt.forcecolor:
|
||||||
|
if any([
|
||||||
|
cb_nonzero[0] > 128,
|
||||||
|
cr_nonzero[0] > 128,
|
||||||
|
cb_nonzero[-1] < 128,
|
||||||
|
cr_nonzero[-1] < 128,
|
||||||
|
]):
|
||||||
|
return True
|
||||||
|
elif cb_spread < SPREAD_THRESHOLD and cr_spread < SPREAD_THRESHOLD:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# check for large amount of extreme colors
|
# check for large amount of extreme colors
|
||||||
@@ -358,7 +366,7 @@ class ComicPage:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
# get ride of most jpg compression
|
# get ride of most jpg compression
|
||||||
cutoff = (2, 2)
|
cutoff = (3, 3)
|
||||||
cb_hist, cr_hist = self.histograms_cutoff(cb, cr, cutoff)
|
cb_hist, cr_hist = self.histograms_cutoff(cb, cr, cutoff)
|
||||||
|
|
||||||
cb_nonzero = [i for i, e in enumerate(cb_hist) if e]
|
cb_nonzero = [i for i, e in enumerate(cb_hist) if e]
|
||||||
@@ -368,11 +376,19 @@ class ComicPage:
|
|||||||
|
|
||||||
# bias adjustment
|
# bias adjustment
|
||||||
SPREAD_THRESHOLD = 5
|
SPREAD_THRESHOLD = 5
|
||||||
if not self.opt.forcecolor and cb_spread < SPREAD_THRESHOLD and cr_spread < SPREAD_THRESHOLD:
|
if self.opt.forcecolor:
|
||||||
|
if any([
|
||||||
|
cb_nonzero[0] > 128,
|
||||||
|
cr_nonzero[0] > 128,
|
||||||
|
cb_nonzero[-1] < 128,
|
||||||
|
cr_nonzero[-1] < 128,
|
||||||
|
]):
|
||||||
|
return True
|
||||||
|
elif cb_spread < SPREAD_THRESHOLD and cr_spread < SPREAD_THRESHOLD:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# check for any amount of mild colors still remaining
|
# check for any amount of mild colors still remaining, 3 is barely enough, 2 is too high
|
||||||
DIFF_THRESHOLD = 6
|
DIFF_THRESHOLD = 3
|
||||||
if any([
|
if any([
|
||||||
cb_nonzero[0] <= 128 - DIFF_THRESHOLD,
|
cb_nonzero[0] <= 128 - DIFF_THRESHOLD,
|
||||||
cr_nonzero[0] <= 128 - DIFF_THRESHOLD,
|
cr_nonzero[0] <= 128 - DIFF_THRESHOLD,
|
||||||
|
|||||||
Reference in New Issue
Block a user