├── Makefile ├── README.md ├── deblurring.cpp ├── real_dataset ├── Pantheon.jpg ├── attribute.txt ├── bird.jpg ├── boat1.jpg ├── boat2.jpg ├── book1.jpg ├── book2.jpg ├── book3.jpg ├── book4.jpg ├── boy_statue.jpg ├── bridge.jpg ├── building1.jpg ├── building2.jpg ├── butchershop.jpg ├── cairo1979.jpg ├── car1.jpg ├── car2.jpg ├── car3.jpg ├── car4.jpg ├── car5.jpg ├── car_house.jpg ├── church.jpg ├── coke.jpg ├── cross_stitch.jpg ├── dinner.jpg ├── dog.jpg ├── elephant.jpg ├── face.jpg ├── face2.jpg ├── family.jpg ├── ferry.jpg ├── fishes.jpg ├── flower.jpg ├── fountain1.jpg ├── garden.jpg ├── girls.jpg ├── hanzi.jpg ├── harubang.jpg ├── house1.jpg ├── house2.jpg ├── house3.jpg ├── house4.jpg ├── ian1.jpg ├── istanbul.jpg ├── lady_portrait.jpg ├── leaf.jpg ├── lion.jpg ├── livingroom.jpg ├── lobster.jpg ├── lyndsey.jpg ├── mukta.jpg ├── night1.jpg ├── night2.jpg ├── night3.jpg ├── night4.jpg ├── night5.jpg ├── night6.jpg ├── notredame.jpg ├── nv.jpg ├── outdoor.jpg ├── pagode.jpg ├── petrol_station1.jpg ├── picasso.jpg ├── pietro.jpg ├── postcard.jpg ├── readme.txt ├── redtree.jpg ├── roma.jpg ├── sculpture.jpg ├── shelf.jpg ├── shrink.jpg ├── singing.jpg ├── statue1.jpg ├── statue2.jpg ├── stone.jpg ├── street1.jpg ├── street2.jpg ├── street3.jpg ├── street4.jpg ├── street_cars.jpg ├── subway.jpg ├── summerhouse.jpg ├── sydney_opera.jpg ├── text1.jpg ├── text10.jpg ├── text11.jpg ├── text12.jpg ├── text2.jpg ├── text3.jpg ├── text4.jpg ├── text5.jpg ├── text6.jpg ├── text7.jpg ├── text8.jpg ├── text9.jpg ├── topresso.jpg ├── torres.jpg ├── toy.jpg ├── vase.jpg ├── vintage_car.jpg ├── wall.jpg └── wheel.jpg └── test_images ├── lena.png └── mandril.jpg /Makefile: -------------------------------------------------------------------------------- 1 | all : 2 | g++ -g -w -I".\opencv\build\install\include" -L".\opencv\build\install\x64\mingw\lib" deblurring.cpp -lopencv_core320 -lopencv_highgui320 -lopencv_imgproc320 -lopencv_imgcodecs320 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ImageDeblurring 2 | Implementation of the iterative blind deblurring algorithm with PSF size estimation 3 | -------------------------------------------------------------------------------- /deblurring.cpp: -------------------------------------------------------------------------------- 1 | #include "opencv2/core/core.hpp" 2 | #include "opencv2/imgproc/imgproc.hpp" 3 | #include "opencv2/highgui/highgui.hpp" 4 | #include 5 | #include 6 | 7 | using namespace cv; 8 | using namespace std; 9 | 10 | void computeDFT(const Mat &image, Mat *result); 11 | void computeIDFT(Mat *input, Mat &result); 12 | void wienerFilter(const Mat &blurredImage, const Mat &known, Mat &unknown, float k); 13 | void rotate(const Mat &src, Mat &dst); 14 | void blindDeblurringOneChannel(const Mat &blurred, Mat &kernel, int kernelSize, int iters, float noisePower); 15 | void blindDeblurring(const Mat &blurred, Mat &deblurred, Mat &kernel, int iters); 16 | void applyConstraints(Mat &image, float thresholdValue); 17 | Mat getAutoCerrelation(const Mat &blurred); 18 | int estimateKernelSize(const Mat &blurred); 19 | void cropBorder(Mat &image); 20 | float measureBlur(const Mat &grayBlurred); 21 | bool isBlurred(const Mat &grayBlurred); 22 | float getInvSNR(const Mat &grayBlurred); 23 | Mat erosion(const Mat &grayImage, int erosionSize); 24 | Mat sharpImage(const Mat &grayImage, float sigmar); 25 | 26 | int main(int argc, char* argv[]) 27 | { 28 | String file; 29 | file = argv[1]; 30 | Mat blurred = imread(file, CV_LOAD_IMAGE_COLOR); 31 | Mat deblurred; 32 | Mat kernel; 33 | blindDeblurring(blurred, deblurred, kernel, 10); 34 | imwrite(argv[2], deblurred); 35 | return 0; 36 | } 37 | 38 | Mat erosion(const Mat &grayImage, int erosionSize) 39 | { 40 | int erosionType = 0; 41 | Mat element = getStructuringElement(erosionType, 42 | Size(2 * erosionSize + 1, 2 * erosionSize + 1 ), 43 | Point(erosionSize, erosionSize)); 44 | Mat eroded; 45 | erode(grayImage, eroded, element); 46 | return eroded.clone(); 47 | } 48 | 49 | Mat sharpImage(const Mat &grayImage, float sigmar) 50 | { 51 | Mat image; 52 | grayImage.convertTo(image, CV_32FC1); 53 | Mat bilateralImage; 54 | bilateralFilter(grayImage, bilateralImage, 5, sigmar, 2); 55 | 56 | Mat sharpFilter = (Mat_(3, 3) << -1, -1, -1, -1, 8, -1, -1, -1, -1); 57 | Mat filteredImage; 58 | filter2D(bilateralImage, filteredImage, -1, sharpFilter); 59 | filteredImage.convertTo(filteredImage, CV_32FC1); 60 | double minVal; 61 | double maxVal; 62 | minMaxLoc(filteredImage, &minVal, &maxVal); 63 | filteredImage-=(float)minVal; 64 | filteredImage*=(255.0 / maxVal); 65 | 66 | Mat sharpened = image + filteredImage; 67 | minMaxLoc(sharpened, &minVal, &maxVal); 68 | sharpened*=(255.0 / maxVal); 69 | return sharpened.clone(); 70 | } 71 | 72 | //TO-DO try Fast Noise Variance Estimation JOHN IMMERKÆR 73 | float getInvSNR(const Mat &grayBlurred) 74 | { 75 | Mat median; 76 | medianBlur(grayBlurred, median, 3); 77 | float numerator = 0; 78 | float denominator = 0; 79 | float res = 0; 80 | for (int i = 0; i < grayBlurred.rows; i++) 81 | { 82 | for (int j = 0; j < grayBlurred.cols; j++) 83 | { 84 | numerator+=((grayBlurred.at(i, j) - median.at(i, j)) 85 | * (grayBlurred.at(i, j) - median.at(i, j))); 86 | denominator+=(grayBlurred.at(i, j) * grayBlurred.at(i, j)); 87 | } 88 | } 89 | res = sqrt(numerator/denominator); 90 | cout << "noise to signal ratio " << res << endl; 91 | return res; 92 | } 93 | 94 | float measureBlur(const Mat &grayBlurred) 95 | { 96 | Mat dst; 97 | Laplacian(grayBlurred, dst, -1, 3, 1, 0, BORDER_CONSTANT); 98 | dst.convertTo(dst, CV_8UC1); 99 | float sum = 0; 100 | for (int i = 0; i < grayBlurred.rows; i++) 101 | { 102 | for (int j = 0; j < grayBlurred.cols; j++) 103 | { 104 | sum+=dst.at(i, j); 105 | } 106 | } 107 | sum/=(grayBlurred.rows * grayBlurred.cols); 108 | cout << sum << endl; 109 | return sum; 110 | } 111 | 112 | bool isBlurred(const Mat &grayBlurred) 113 | { 114 | return measureBlur(grayBlurred) < 20; 115 | } 116 | 117 | Mat getAutoCerrelation(const Mat &blurred) 118 | { 119 | Mat dst; 120 | int ddepth = CV_16S; 121 | Laplacian(blurred, dst, -1, 3, 1, 0, BORDER_CONSTANT); 122 | dst.convertTo(dst, CV_32FC1); 123 | Mat correlation; 124 | filter2D(dst, correlation, -1, dst, Point(-1,-1), 0, BORDER_CONSTANT); 125 | return correlation.clone(); 126 | } 127 | 128 | void cropBorder(Mat &thresholded) 129 | { 130 | int top = 0; 131 | int left = 0; 132 | int right = 0; 133 | int bottom = 0; 134 | for (int i = 0; i < thresholded.rows; i++) 135 | { 136 | for (int j = 0; j < thresholded.cols; j++) 137 | { 138 | if (thresholded.at(i ,j) == 255) 139 | { 140 | top = i; 141 | break; 142 | } 143 | } 144 | if (top) 145 | break; 146 | } 147 | 148 | for (int i = thresholded.rows - 1; i > 0; i--) 149 | { 150 | for (int j = 0; j < thresholded.cols; j++) 151 | { 152 | if (thresholded.at(i ,j) == 255) 153 | { 154 | bottom = i; 155 | break; 156 | } 157 | } 158 | if (bottom) 159 | break; 160 | } 161 | 162 | for (int i = 0; i < thresholded.cols; i++) 163 | { 164 | for (int j = 0; j < thresholded.rows; j++) 165 | { 166 | if (thresholded.at(j ,i) == 255) 167 | { 168 | left = i; 169 | break; 170 | } 171 | } 172 | if (left) 173 | break; 174 | } 175 | 176 | for (int i = thresholded.cols - 1; i > 0; i--) 177 | { 178 | for (int j = 0; j < thresholded.rows; j++) 179 | { 180 | if (thresholded.at(j, i) == 255) 181 | { 182 | right = i; 183 | break; 184 | } 185 | } 186 | if (right) 187 | break; 188 | } 189 | thresholded = thresholded(Rect(left, top, right - left, bottom - top)); 190 | } 191 | 192 | int estimateKernelSize(const Mat &grayBlurred) 193 | { 194 | int kernelSize = 0; 195 | Mat correlation = getAutoCerrelation(grayBlurred); 196 | Mat thresholded = correlation.clone(); 197 | for(int i = 0; i < 10; i++) 198 | { 199 | Mat thresholdedNEW; 200 | double minVal; 201 | double maxVal; 202 | minMaxLoc(thresholded, &minVal, &maxVal); 203 | threshold(thresholded, thresholded, round(maxVal / 3.5), 255, THRESH_BINARY); 204 | thresholded.convertTo(thresholded, CV_8UC1); 205 | cropBorder(thresholded); 206 | if (thresholded.rows < 3) 207 | { 208 | break; 209 | } 210 | int filterSize = (int)(max(3, ((thresholded.rows + thresholded.cols) / 2)/10)); 211 | if (!(filterSize & 1)) 212 | { 213 | filterSize++; 214 | } 215 | Mat filter = Mat::ones(filterSize, filterSize, CV_32FC1) / (float)(filterSize * filterSize - 1); 216 | filter.at(filterSize / 2, filterSize / 2) = 0; 217 | filter2D(thresholded, thresholdedNEW, -1, filter, Point(-1, -1), 0, BORDER_CONSTANT); 218 | kernelSize = (thresholdedNEW.rows + thresholdedNEW.cols) / 2; 219 | if (!(kernelSize & 1)) 220 | { 221 | kernelSize++; 222 | } 223 | thresholded = thresholdedNEW.clone(); 224 | } 225 | cout << "estimated kernel size " << kernelSize << endl; 226 | return kernelSize; 227 | } 228 | 229 | void computeDFT(const Mat &image, Mat *result) 230 | { 231 | Mat padded; 232 | int m = getOptimalDFTSize(image.rows); 233 | int n = getOptimalDFTSize(image.cols); 234 | copyMakeBorder(image, padded, 0, m - image.rows, 0, n - image.cols, BORDER_CONSTANT, Scalar::all(0)); 235 | Mat planes[] = {Mat_(padded), Mat::zeros(padded.size(), CV_32FC1)}; 236 | Mat fimg; 237 | merge(planes, 2, fimg); 238 | dft(fimg, fimg); 239 | split(fimg, planes); 240 | planes[0] = planes[0](Rect(0, 0, image.cols, image.rows)); 241 | planes[1] = planes[1](Rect(0, 0, image.cols, image.rows)); 242 | result[0] = planes[0].clone(); 243 | result[1] = planes[1].clone(); 244 | } 245 | 246 | void computeIDFT(Mat *input, Mat &result) 247 | { 248 | Mat fimg; 249 | merge(input, 2, fimg); 250 | Mat inverse; 251 | idft(fimg, inverse, DFT_REAL_OUTPUT + DFT_SCALE); 252 | result = inverse.clone(); 253 | } 254 | 255 | void rotate(Mat &src, Mat &dst) 256 | { 257 | int cx = src.cols >> 1; 258 | int cy = src.rows >> 1; 259 | Mat tmp; 260 | tmp.create(src.size(), src.type()); 261 | src(Rect(0, 0, cx, cy)).copyTo(tmp(Rect(cx, cy, cx, cy))); 262 | src(Rect(cx, cy, cx, cy)).copyTo(tmp(Rect(0, 0, cx, cy))); 263 | src(Rect(cx, 0, cx, cy)).copyTo(tmp(Rect(0, cy, cx, cy))); 264 | src(Rect(0, cy, cx, cy)).copyTo(tmp(Rect(cx, 0, cx, cy))); 265 | dst = tmp.clone(); 266 | } 267 | 268 | void applyConstraints(Mat &image, float thresholdValue) 269 | { 270 | for (int i = 0; i < image.rows; i++){ 271 | for (int j = 0; j < image.cols; j++){ 272 | if (image.at(i, j) < thresholdValue) 273 | { 274 | image.at(i, j) = 0; 275 | } 276 | if (image.at(i, j) > 255) 277 | { 278 | image.at(i, j) = 255.0; 279 | } 280 | } 281 | } 282 | } 283 | 284 | void normalizePSF(Mat &image) 285 | { 286 | float sum = 0; 287 | for (int i = 0; i < image.rows; i++) 288 | { 289 | for (int j = 0; j < image.cols; j++) 290 | { 291 | sum+=image.at(i, j); 292 | } 293 | } 294 | image/=sum; 295 | } 296 | 297 | void blindDeblurring(const Mat &blurred, Mat &deblurred, Mat &kernel, int iters) 298 | { 299 | Mat grayBlurred; 300 | cvtColor(blurred, grayBlurred, CV_BGR2GRAY); 301 | float noisePower = getInvSNR(grayBlurred); 302 | if (!isBlurred(grayBlurred)) 303 | { 304 | cout << "not blurred" << endl; 305 | deblurred = blurred.clone(); 306 | kernel = Mat::zeros(3, 3, CV_8UC1); 307 | kernel.at(1, 1) = 1; 308 | return; 309 | } 310 | vector blurredRGB(3); 311 | split(blurred, blurredRGB); 312 | vector deblurredRGB(3); 313 | int kernelSize = estimateKernelSize(grayBlurred); 314 | Mat resultDeblurred; 315 | Mat resultKernel; 316 | blindDeblurringOneChannel(grayBlurred, resultKernel, kernelSize, iters, noisePower); 317 | for (int i = 0; i < 3; i++) 318 | { 319 | wienerFilter(blurredRGB[i], resultKernel, deblurredRGB[i], noisePower); 320 | } 321 | merge(deblurredRGB, resultDeblurred); 322 | deblurred = resultDeblurred.clone(); 323 | kernel = resultKernel.clone(); 324 | } 325 | 326 | void blindDeblurringOneChannel(const Mat &blurred, Mat &kernel, int kernelSize, int iters, float noisePower) 327 | { 328 | vector blurValues; 329 | vector kernels; 330 | Mat kernelCurrent = Mat::zeros(kernelSize, kernelSize, CV_32FC1); 331 | Mat deblurredCurrent = erosion(blurred, 2); 332 | float sigmar = 0.5; 333 | for (int i = 0; i < iters; i++) 334 | { 335 | Mat sharpened = sharpImage(deblurredCurrent, sigmar); 336 | wienerFilter(blurred, sharpened.clone(), kernelCurrent, noisePower); 337 | kernelCurrent = kernelCurrent(Rect((blurred.cols - kernelSize) / 2 ,(blurred.rows - kernelSize) / 2, kernelSize, kernelSize)); 338 | double minVal; 339 | double maxVal; 340 | minMaxLoc(kernelCurrent, &minVal, &maxVal); 341 | applyConstraints(kernelCurrent, (float)maxVal / 15); 342 | normalizePSF(kernelCurrent); 343 | wienerFilter(blurred, kernelCurrent.clone(), deblurredCurrent, noisePower); 344 | applyConstraints(deblurredCurrent, 0); 345 | kernels.push_back(kernelCurrent); 346 | blurValues.push_back(measureBlur(deblurredCurrent)); 347 | sigmar *= 0.9; 348 | } 349 | auto biggest = max_element(begin(blurValues), end(blurValues)); 350 | int index = distance(begin(blurValues), biggest); 351 | //kernel = kernels[index].clone(); 352 | kernel = kernelCurrent.clone(); 353 | } 354 | 355 | void wienerFilter(const Mat &blurredImage, const Mat &known, Mat &unknown, float noisePower) 356 | { 357 | int imageWidth = blurredImage.size().width; 358 | int imageheight = blurredImage.size().height; 359 | Mat yFT[2]; 360 | computeDFT(blurredImage, yFT); 361 | 362 | Mat padded = Mat::zeros(imageheight, imageWidth, CV_32FC1); 363 | int padx = padded.cols - known.cols; 364 | int pady = padded.rows - known.rows; 365 | copyMakeBorder(known, padded, pady / 2, pady - pady / 2, padx / 2, padx - padx / 2, BORDER_CONSTANT, Scalar::all(0)); 366 | Mat paddedFT[2]; 367 | computeDFT(padded, paddedFT); 368 | 369 | Mat tempUnknown; 370 | Mat unknownFT[2]; 371 | unknownFT[0] = Mat::zeros(imageheight, imageWidth, CV_32FC1); 372 | unknownFT[1] = Mat::zeros(imageheight, imageWidth, CV_32FC1); 373 | 374 | float paddedRe; 375 | float paddedIm; 376 | float paddedABS; 377 | float denominator; 378 | complex numerator; 379 | 380 | for (int i = 0; i < padded.rows; i++) 381 | { 382 | for (int j = 0; j < padded.cols; j++) 383 | { 384 | paddedRe = paddedFT[0].at(i,j); 385 | paddedIm = paddedFT[1].at(i,j); 386 | paddedABS = paddedRe * paddedRe + paddedIm * paddedIm; 387 | denominator = noisePower + paddedABS; 388 | numerator = complex(paddedRe, -paddedIm) * complex(yFT[0].at(i,j), yFT[1].at(i,j)); 389 | unknownFT[0].at(i,j) = numerator.real() / denominator; 390 | unknownFT[1].at(i,j) = numerator.imag() / denominator; 391 | } 392 | } 393 | computeIDFT(unknownFT, tempUnknown); 394 | rotate(tempUnknown, tempUnknown); 395 | unknown = tempUnknown.clone(); 396 | } -------------------------------------------------------------------------------- /real_dataset/Pantheon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/Pantheon.jpg -------------------------------------------------------------------------------- /real_dataset/attribute.txt: -------------------------------------------------------------------------------- 1 | bird natural 2 | boat1 manmade 3 | boat2 manmade 4 | book1 text 5 | book2 text 6 | book3 text 7 | book4 text 8 | boy_statue manmade 9 | bridge manmade saturated 10 | building1 manmade 11 | building2 manmade saturated 12 | butchershop manmade 13 | cairo1979 natural people 14 | car_house manmade 15 | car1 manmade 16 | car2 manmade saturated 17 | car3 manmade saturated 18 | car4 manmade saturated 19 | car5 manmade saturated 20 | church manmade 21 | coke manmade 22 | cross_stitch manmade 23 | dinner manmade people saturated 24 | dog manmade people 25 | elephant manmade 26 | face people saturated 27 | face2 people 28 | family manmade people saturated 29 | ferry manmade saturated 30 | fishes natural 31 | flower natural 32 | fountain1 manmade 33 | garden natural saturated 34 | girls manmade people 35 | hanzi manmade text 36 | harubang manmade 37 | house1 manmade 38 | house2 manmade 39 | house3 manmade 40 | house4 manmade 41 | ian1 natural 42 | istanbul manmade saturated 43 | lady_portrait manmade 44 | leaf natural 45 | lion natural 46 | livingroom manmade 47 | lobster manmade 48 | lyndsey manmade 49 | mukta people 50 | night1 manmade saturated 51 | night2 manmade saturated 52 | night3 manmade saturated 53 | night4 manmade natural saturated 54 | night5 manmade saturated 55 | night6 manmade saturated 56 | notredame manmade saturated 57 | nv manmade 58 | outdoor natural 59 | pagode manmade saturated 60 | Pantheon manmade 61 | petrol_station1 manmade 62 | picasso manmade people 63 | pietro people 64 | postcard manmade 65 | redtree natural 66 | roma manmade 67 | sculpture manmade 68 | shelf manmade 69 | shrink natural 70 | singing people 71 | statue1 manmade 72 | statue2 manmade 73 | stone natural 74 | street_cars manmade saturated 75 | street1 manmade saturated 76 | street2 manmade saturated 77 | street3 manmade saturated 78 | street4 manmade people saturated 79 | subway manmade 80 | summerhouse manmade 81 | sydney_opera manmade saturated 82 | text1 text 83 | text2 text 84 | text3 text 85 | text4 text 86 | text5 text 87 | text6 text 88 | text7 text 89 | text8 text 90 | text9 text 91 | text10 text 92 | text11 text 93 | text12 text 94 | topresso manmade saturated 95 | torres natural 96 | toy manmade 97 | vase manmade saturated 98 | vintage_car manmade 99 | wall manmade 100 | wheel manmade 101 | -------------------------------------------------------------------------------- /real_dataset/bird.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/bird.jpg -------------------------------------------------------------------------------- /real_dataset/boat1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/boat1.jpg -------------------------------------------------------------------------------- /real_dataset/boat2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/boat2.jpg -------------------------------------------------------------------------------- /real_dataset/book1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/book1.jpg -------------------------------------------------------------------------------- /real_dataset/book2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/book2.jpg -------------------------------------------------------------------------------- /real_dataset/book3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/book3.jpg -------------------------------------------------------------------------------- /real_dataset/book4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/book4.jpg -------------------------------------------------------------------------------- /real_dataset/boy_statue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/boy_statue.jpg -------------------------------------------------------------------------------- /real_dataset/bridge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/bridge.jpg -------------------------------------------------------------------------------- /real_dataset/building1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/building1.jpg -------------------------------------------------------------------------------- /real_dataset/building2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/building2.jpg -------------------------------------------------------------------------------- /real_dataset/butchershop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/butchershop.jpg -------------------------------------------------------------------------------- /real_dataset/cairo1979.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/cairo1979.jpg -------------------------------------------------------------------------------- /real_dataset/car1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/car1.jpg -------------------------------------------------------------------------------- /real_dataset/car2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/car2.jpg -------------------------------------------------------------------------------- /real_dataset/car3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/car3.jpg -------------------------------------------------------------------------------- /real_dataset/car4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/car4.jpg -------------------------------------------------------------------------------- /real_dataset/car5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/car5.jpg -------------------------------------------------------------------------------- /real_dataset/car_house.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/car_house.jpg -------------------------------------------------------------------------------- /real_dataset/church.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/church.jpg -------------------------------------------------------------------------------- /real_dataset/coke.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/coke.jpg -------------------------------------------------------------------------------- /real_dataset/cross_stitch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/cross_stitch.jpg -------------------------------------------------------------------------------- /real_dataset/dinner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/dinner.jpg -------------------------------------------------------------------------------- /real_dataset/dog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/dog.jpg -------------------------------------------------------------------------------- /real_dataset/elephant.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/elephant.jpg -------------------------------------------------------------------------------- /real_dataset/face.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/face.jpg -------------------------------------------------------------------------------- /real_dataset/face2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/face2.jpg -------------------------------------------------------------------------------- /real_dataset/family.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/family.jpg -------------------------------------------------------------------------------- /real_dataset/ferry.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/ferry.jpg -------------------------------------------------------------------------------- /real_dataset/fishes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/fishes.jpg -------------------------------------------------------------------------------- /real_dataset/flower.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/flower.jpg -------------------------------------------------------------------------------- /real_dataset/fountain1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/fountain1.jpg -------------------------------------------------------------------------------- /real_dataset/garden.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/garden.jpg -------------------------------------------------------------------------------- /real_dataset/girls.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/girls.jpg -------------------------------------------------------------------------------- /real_dataset/hanzi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/hanzi.jpg -------------------------------------------------------------------------------- /real_dataset/harubang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/harubang.jpg -------------------------------------------------------------------------------- /real_dataset/house1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/house1.jpg -------------------------------------------------------------------------------- /real_dataset/house2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/house2.jpg -------------------------------------------------------------------------------- /real_dataset/house3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/house3.jpg -------------------------------------------------------------------------------- /real_dataset/house4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/house4.jpg -------------------------------------------------------------------------------- /real_dataset/ian1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/ian1.jpg -------------------------------------------------------------------------------- /real_dataset/istanbul.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/istanbul.jpg -------------------------------------------------------------------------------- /real_dataset/lady_portrait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/lady_portrait.jpg -------------------------------------------------------------------------------- /real_dataset/leaf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/leaf.jpg -------------------------------------------------------------------------------- /real_dataset/lion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/lion.jpg -------------------------------------------------------------------------------- /real_dataset/livingroom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/livingroom.jpg -------------------------------------------------------------------------------- /real_dataset/lobster.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/lobster.jpg -------------------------------------------------------------------------------- /real_dataset/lyndsey.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/lyndsey.jpg -------------------------------------------------------------------------------- /real_dataset/mukta.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/mukta.jpg -------------------------------------------------------------------------------- /real_dataset/night1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/night1.jpg -------------------------------------------------------------------------------- /real_dataset/night2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/night2.jpg -------------------------------------------------------------------------------- /real_dataset/night3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/night3.jpg -------------------------------------------------------------------------------- /real_dataset/night4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/night4.jpg -------------------------------------------------------------------------------- /real_dataset/night5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/night5.jpg -------------------------------------------------------------------------------- /real_dataset/night6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/night6.jpg -------------------------------------------------------------------------------- /real_dataset/notredame.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/notredame.jpg -------------------------------------------------------------------------------- /real_dataset/nv.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/nv.jpg -------------------------------------------------------------------------------- /real_dataset/outdoor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/outdoor.jpg -------------------------------------------------------------------------------- /real_dataset/pagode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/pagode.jpg -------------------------------------------------------------------------------- /real_dataset/petrol_station1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/petrol_station1.jpg -------------------------------------------------------------------------------- /real_dataset/picasso.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/picasso.jpg -------------------------------------------------------------------------------- /real_dataset/pietro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/pietro.jpg -------------------------------------------------------------------------------- /real_dataset/postcard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/postcard.jpg -------------------------------------------------------------------------------- /real_dataset/readme.txt: -------------------------------------------------------------------------------- 1 | Paper: 2 | A Comparative Study for Single Image Blind Deblurring 3 | Wei-Sheng Lai, Jia-Bin Huang, Zhe Hu, Narendra Ahuja, and Ming-Hsuan Yang 4 | IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2016 5 | 6 | Project webpage: 7 | http://vllab.ucmerced.edu/~wlai24/cvpr16_deblur_study/ 8 | 9 | Contact: 10 | Wei-Sheng Lai (wlai24@ucmerced.edu) 11 | 12 | Description: 13 | An image dataset with 100 real-world motion blurred images 14 | 15 | File list: 16 | *.jpg : testing images 17 | attribute.txt : list of image names and attributes 18 | 19 | -------------------------------------------------------------------------------- /real_dataset/redtree.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/redtree.jpg -------------------------------------------------------------------------------- /real_dataset/roma.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/roma.jpg -------------------------------------------------------------------------------- /real_dataset/sculpture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/sculpture.jpg -------------------------------------------------------------------------------- /real_dataset/shelf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/shelf.jpg -------------------------------------------------------------------------------- /real_dataset/shrink.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/shrink.jpg -------------------------------------------------------------------------------- /real_dataset/singing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/singing.jpg -------------------------------------------------------------------------------- /real_dataset/statue1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/statue1.jpg -------------------------------------------------------------------------------- /real_dataset/statue2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/statue2.jpg -------------------------------------------------------------------------------- /real_dataset/stone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/stone.jpg -------------------------------------------------------------------------------- /real_dataset/street1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/street1.jpg -------------------------------------------------------------------------------- /real_dataset/street2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/street2.jpg -------------------------------------------------------------------------------- /real_dataset/street3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/street3.jpg -------------------------------------------------------------------------------- /real_dataset/street4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/street4.jpg -------------------------------------------------------------------------------- /real_dataset/street_cars.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/street_cars.jpg -------------------------------------------------------------------------------- /real_dataset/subway.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/subway.jpg -------------------------------------------------------------------------------- /real_dataset/summerhouse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/summerhouse.jpg -------------------------------------------------------------------------------- /real_dataset/sydney_opera.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/sydney_opera.jpg -------------------------------------------------------------------------------- /real_dataset/text1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text1.jpg -------------------------------------------------------------------------------- /real_dataset/text10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text10.jpg -------------------------------------------------------------------------------- /real_dataset/text11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text11.jpg -------------------------------------------------------------------------------- /real_dataset/text12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text12.jpg -------------------------------------------------------------------------------- /real_dataset/text2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text2.jpg -------------------------------------------------------------------------------- /real_dataset/text3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text3.jpg -------------------------------------------------------------------------------- /real_dataset/text4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text4.jpg -------------------------------------------------------------------------------- /real_dataset/text5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text5.jpg -------------------------------------------------------------------------------- /real_dataset/text6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text6.jpg -------------------------------------------------------------------------------- /real_dataset/text7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text7.jpg -------------------------------------------------------------------------------- /real_dataset/text8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text8.jpg -------------------------------------------------------------------------------- /real_dataset/text9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/text9.jpg -------------------------------------------------------------------------------- /real_dataset/topresso.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/topresso.jpg -------------------------------------------------------------------------------- /real_dataset/torres.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/torres.jpg -------------------------------------------------------------------------------- /real_dataset/toy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/toy.jpg -------------------------------------------------------------------------------- /real_dataset/vase.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/vase.jpg -------------------------------------------------------------------------------- /real_dataset/vintage_car.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/vintage_car.jpg -------------------------------------------------------------------------------- /real_dataset/wall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/wall.jpg -------------------------------------------------------------------------------- /real_dataset/wheel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/real_dataset/wheel.jpg -------------------------------------------------------------------------------- /test_images/lena.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/test_images/lena.png -------------------------------------------------------------------------------- /test_images/mandril.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catree/ImageDeblurring/0d80ed1bc30dbf4de8a9079f34e864faf414a7f0/test_images/mandril.jpg --------------------------------------------------------------------------------