@@ -594,7 +594,7 @@ int Waifu2x::process_cpu(const ncnn::Mat& inimage, ncnn::Mat& outimage) const
594
594
int in_tile_x1 = std::min ((xi + 1 ) * TILE_SIZE_X + prepadding_right, w);
595
595
596
596
// crop tile
597
- ncnn::Mat in;
597
+ ncnn::Mat in, in_nopad ;
598
598
{
599
599
if (channels == 3 )
600
600
{
@@ -607,8 +607,10 @@ int Waifu2x::process_cpu(const ncnn::Mat& inimage, ncnn::Mat& outimage) const
607
607
if (channels == 4 )
608
608
{
609
609
#if _WIN32
610
+ in_nopad = ncnn::Mat::from_pixels_roi (pixeldata, ncnn::Mat::PIXEL_BGRA2RGBA, w, h, xi * TILE_SIZE_X, yi * TILE_SIZE_Y, tile_w_nopad, tile_h_nopad);
610
611
in = ncnn::Mat::from_pixels_roi (pixeldata, ncnn::Mat::PIXEL_BGRA2RGBA, w, h, in_tile_x0, in_tile_y0, in_tile_x1 - in_tile_x0, in_tile_y1 - in_tile_y0);
611
612
#else
613
+ in_nopad = ncnn::Mat::from_pixels_roi (pixeldata, ncnn::Mat::PIXEL_RGBA, w, h, xi * TILE_SIZE_X, yi * TILE_SIZE_Y, tile_w_nopad, tile_h_nopad);
612
614
in = ncnn::Mat::from_pixels_roi (pixeldata, ncnn::Mat::PIXEL_RGBA, w, h, in_tile_x0, in_tile_y0, in_tile_x1 - in_tile_x0, in_tile_y1 - in_tile_y0);
613
615
#endif
614
616
}
@@ -639,7 +641,7 @@ int Waifu2x::process_cpu(const ncnn::Mat& inimage, ncnn::Mat& outimage) const
639
641
640
642
if (channels == 4 )
641
643
{
642
- in_alpha_tile = in .channel_range (3 , 1 ).clone ();
644
+ in_alpha_tile = in_nopad .channel_range (3 , 1 ).clone ();
643
645
}
644
646
}
645
647
@@ -790,7 +792,7 @@ int Waifu2x::process_cpu(const ncnn::Mat& inimage, ncnn::Mat& outimage) const
790
792
791
793
if (channels == 4 )
792
794
{
793
- in_alpha_tile = in .channel_range (3 , 1 ).clone ();
795
+ in_alpha_tile = in_nopad .channel_range (3 , 1 ).clone ();
794
796
}
795
797
}
796
798
0 commit comments