On 1/30/23, Michael Koch <[email protected]> wrote: > Am 30.01.2023 um 08:47 schrieb Paul B Mahol: >> On Mon, Jan 30, 2023 at 12:23 AM Michael Koch >> <[email protected]> >> wrote: >> >>> Am 29.01.2023 um 23:36 schrieb Paul B Mahol: >>>> On 1/29/23, Michael Koch <[email protected]> wrote: >>>>> Am 29.01.2023 um 23:07 schrieb Paul B Mahol: >>>>>> On 1/29/23, Michael Koch <[email protected]> wrote: >>>>>>> Am 29.01.2023 um 22:05 schrieb Paul B Mahol: >>>>>>>> On 1/29/23, Michael Koch <[email protected]> wrote: >>>>>>>>> Am 29.01.2023 um 19:32 schrieb Paul B Mahol: >>>>>>>>>> On 1/29/23, Michael Koch <[email protected]> wrote: >>>>>>>>>>> Hello, >>>>>>>>>>> >>>>>>>>>>> if I understood the documentation correctly, the normalize >>>>>>>>>>> filter >>>>>>>>>>> maps >>>>>>>>>>> the darkest input pixel to blackpt and the brightest input pixel >>> to >>>>>>>>>>> whitept: >>>>>>>>>>> darkest pixel --> blackpt >>>>>>>>>>> brightest pixel --> whitept >>>>>>>>>>> >>>>>>>>>>> However I need a slightly different mapping: >>>>>>>>>>> A black input pixel shall remain black, and the brightest input >>>>>>>>>>> pixel >>>>>>>>>>> shall become white. >>>>>>>>>>> black --> blackpt >>>>>>>>>>> brightest pixel --> whitept >>>>>>>>>>> >>>>>>>>>>> With other words: Just multiply all pixels by a suitable >>>>>>>>>>> constant. >>>>>>>>>>> Don't >>>>>>>>>>> add or subtract anything. >>>>>>>>>>> Is this possible? >>>>>>>>>>> >>>>>>>>>>> Known workaround: Make sure that the input frame contains a >>>>>>>>>>> black >>>>>>>>>>> pixel, >>>>>>>>>>> by inserting one in a corner. >>>>>>>>>> Try attached patch. >>>>>>>>> How must I set the options for the desired behaviour? >>>>>>>> Set first strength to reverse of second strength. >>>>>>>> So 1.0 and 0.0 or 0.0 and 1.0 >>>>>>> I did try with strength=0:strength2=1 but the output isn't as >>> expected. >>>>>>> I'm using this input image: >>>>>>> http://www.astro-electronic.de/flat.png >>>>>>> >>>>>>> The pixel values are about 171 in the center and 107 in the top >>>>>>> right >>>>>>> corner. >>>>>>> The center to corner ratio is 171 / 107 = 1.6 >>>>>>> >>>>>>> In the output image I measure 248 in the center (which is almost as >>>>>>> expected, probably correct because I'm measuring the average of a >>>>>>> 7x7 >>>>>>> neighborhood), but I measure 122 in the top right corner. >>>>>>> The center to corner ratio is 248 / 122 = 2.03 >>>>>>> The corner is too dark. >>>>>>> >>>>>> I checked with oscilloscope filter (s=1:tw=1:t=1:x=0), far left >>>>>> pixels >>>>>> (as they are darkest) and they are not changing (min values are same >>>>>> with and without filter run) >>>>>> With default parameters and just strength(2) set to your values, so >>>>>> the darkest pixels are left untouched. Did not checked brightest >>>>>> pixels output, but they should be correct too. >>>>> But that's not the behaviour I need. All pixels shall be multiplied by >>>>> the same suitable constant, so that the brightest pixel becomes white. >>>>> >>>>> Input center: 171 >>>>> Input corner: 107 >>>>> >>>>> constant c = 255 / 171 =1.49 >>>>> Output center: 171 * c = 255 >>>>> Output corner: 107 * c = 160 >>>>> >>>> Normalization does not do that and that functionality does not belong >>>> to such filter, it stretches ranges of all pixel values so they reach >>>> maximal possible range. >>> Can't you just add an option that disables the minimum finding >>> algorithm, and set the minimum to zero (=black)? That would do the job. >>> >> I just did, but for whatever reason you think its incorrect. > > You wrote: > > "With default parameters and just strength(2) set to your values, so > the darkest pixels are left untouched." > > However I want that black remains untouched. That's not the same, because > the darkest pixels in the image aren't black. > > The workaround is to insert a black pixel before normalizing: > -vf drawbox=w=1:h=1:color=black,normalize
This command produces more convincing output: -vf colorlevels=rimin=0:gimin=0:bimin=0:rimax=-1:gimax=-1:bimax=-1 this will pick max pixels values from input and stretch it do default output max. _______________________________________________ ffmpeg-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
