@@ -10,12 +10,10 @@ TEST(ascii_art, halide){
1010 const std::string grey_scale = " $@B%8&WM#*OAHKDPQWMRZO0QLCJUYXVJFT/|()1{}[]?-_+~<>i!lI;:,^`'. " ;
1111
1212 cv::Mat src = imread (" cat.jpeg" , cv::IMREAD_GRAYSCALE );
13- cv::Mat dst (src.rows /ry, src.cols /rx, CV_8U ),
13+ cv::Mat dst (src.rows /ry, src.cols /rx, CV_32F ),
1414 render (src.rows , src.cols , CV_8U , cv::Scalar (255 ));
1515
16- ascii_art_halide (src.ptr <uint8_t >(), dst.ptr <uint8_t >(), src.rows , src.cols );
17- char *s;
18- s = (char *)dst.ptr <uint8_t >();
16+ ascii_art_halide (src.ptr <uint8_t >(), dst.ptr <float >(), src.rows , src.cols );
1917 std::vector<std::pair<float , char >> lums={};
2018 std::vector<char > symbols (256 );
2119 float lum_min = 255 ;
@@ -42,14 +40,16 @@ TEST(ascii_art, halide){
4240 for (int i = 0 ; i < dst.rows ; i++)
4341 for (int j = 0 ; j < dst.cols ; j++){
4442
45- uint8_t lum = dst.at <uint8_t >(i, j);
46- int index = (static_cast <float >(lum)/255 )*(lums.size ()-1 );
43+ float lum = dst.at <float >(i, j);
44+ int index = (min (lum, 255 .0f )/255 .0f )*(lums.size ()-1 );
45+ std::cout << lum << std::endl;
46+ CV_Assert (index < lums.size ());
4747 cv::Mat roi = render.colRange (j*rx, (j+1 )*rx).rowRange (i*ry, (i+1 )*ry);
4848 cv::putText (roi, std::string (1 , grey_scale[index]), cv::Point (1 , ry-1 ),
4949 cv::FONT_HERSHEY_SIMPLEX , 0.5 , cv::Scalar (0 ), 1 , cv::LINE_AA );
5050 }
5151
52- imwrite (" res_cat_ascii_halide.png" , render);
53- imwrite (" src_cat_ascii_halide.png" , src);
54- ASSERT_EQ (true , true );
52+ // imwrite("res_cat_ascii_halide.png", render);
53+ // imwrite("src_cat_ascii_halide.png", src);
54+ // ASSERT_EQ(true, true);
5555}
0 commit comments