Modern Algorithms for Image Processing: Computer Imagery by Example Using C# 1st Edition Vladimir Kovalevsky download
Modern Algorithms for Image Processing: Computer Imagery by Example Using C# 1st Edition Vladimir Kovalevsky download
https://textbookfull.com/product/modern-algorithms-for-image-
processing-computer-imagery-by-example-using-c-1st-edition-
vladimir-kovalevsky/
https://textbookfull.com/product/learn-c-by-example-covers-
versions-11-to-23-final-release-1-converted-edition-frances-
buontempo/
https://textbookfull.com/product/essential-algorithms-a-
practical-approach-to-computer-algorithms-using-python-and-c-
second-edition-rod-stephens/
https://textbookfull.com/product/feature-extraction-and-image-
processing-for-computer-vision-fourth-edition-aguado/
https://textbookfull.com/product/feature-extraction-and-image-
processing-for-computer-vision-4th-edition-mark-nixon/
Fuzzy Logic for Image Processing A Gentle Introduction
Using Java SpringerBriefs in Electrical and Computer
Engineering Caponetti Laura Castellano Giovanna
https://textbookfull.com/product/fuzzy-logic-for-image-
processing-a-gentle-introduction-using-java-springerbriefs-in-
electrical-and-computer-engineering-caponetti-laura-castellano-
giovanna/
https://textbookfull.com/product/data-mining-algorithms-in-c-
data-patterns-and-algorithms-for-modern-applications-1st-edition-
timothy-masters/
https://textbookfull.com/product/image-processing-and-
communications-techniques-algorithms-and-applications-michal-
choras/
https://textbookfull.com/product/writing-great-specifications-
using-specification-by-example-and-gherkin-1st-edition-kamil-
nicieja/
https://textbookfull.com/product/image-processing-and-computer-
vision-in-ios-oge-marques/
Modern
Algorithms for
Image Processing
Computer Imagery by Example Using C#
—
Vladimir Kovalevsky
Modern Algorithms for
Image Processing
Computer Imagery by Example
Using C#
Vladimir Kovalevsky
Modern Algorithms for Image Processing: Computer Imagery by Example Using C#
Vladimir Kovalevsky
Berlin, Germany
Acknowledgments��������������������������������������������������������������������������������������������������� xi
Introduction����������������������������������������������������������������������������������������������������������� xiii
v
Table of Contents
vi
Table of Contents
vii
Table of Contents
References������������������������������������������������������������������������������������������������������������ 267
Index��������������������������������������������������������������������������������������������������������������������� 269
viii
About the Author
Vladimir Kovalevsky received his diploma in physics from the Kharkov University
(Ukraine), his first doctoral degree in technical sciences from the Central Institute of
Metrology (Leningrad), and his second doctoral degree in computer science from the
Institute of Cybernetics of the Academy of Sciences of the Ukraine (Kiev) where he
headed the Department of Pattern Recognition for more than a decade.
Vladimir has been living in Germany since 1983. He was a researcher at the Central
Institute of Cybernetics of the Academy of Sciences of the GDR, Berlin, a professor
of computer science at the University of Applied Sciences Berlin, and a scientific
collaborator at the University of Rostock.
He has been a visiting researcher at the University of Pennsylvania, a professor at
the Manukau Institute of Technology in New Zealand, and a professor at the Chonbuk
National University in South Korea. He has reviewed for the journals Applied General
Topology, Computer Vision and Image Understanding, IEEE Transactions on Pattern
Analysis and Machine Intelligence, and others.
Vladimir has been a plenary speaker at conferences in Europe, the United States, and
New Zealand. His research interests include digital geometry, digital topology, computer
vision, image processing, and pattern recognition. He has published four monographs
and more than 180 journal and conference papers on image analysis, digital geometry,
and digital topology.
ix
Acknowledgments
I wish to acknowledge valuable and fruitful discussions with Boris Flach, Reinhard
Klette, Ulrich Koethe, Alexander Kovalevsky, Volkmar Miszalok, and Peer Stelldinger.
These discussions have significantly contributed to this work.
I would like to express my special appreciation to Alexander V. Kovalevsky, who
helped significantly as an experienced programmer in the development of my projects.
xi
Introduction
This book presents a collection of algorithms and projects for processing two-dimensional
images. I developed and investigated the algorithms. Special emphasis is placed on
computer solutions of problems related to the improvement of the quality of images,
with image analysis and recognition of some geometrically definable objects. New data
structures useful for image analysis are presented. The description of all algorithms
contains examples of source code in the C# programming language. Descriptions of
projects contain source code that can be used by readers.
With this book I intend to help you develop efficient software for processing
two-dimensional images. There are a lot of books on image processing, but important
algorithms are missing from these books. I have developed many efficient algorithms as
a new and important contribution to this area.
I have paid great attention to solutions of problems in image analysis. On the other
hand, problems of improving the quality of images are important for the arts. My wife is
a recognized specialist in the history of the arts, and her publications often use copies
of famous pictures and drawings. The photographs of these artworks are often of low
quality. Often photographs of historical drawings illustrating the work of a painter are
of such low quality that it is almost impossible to clearly see the contents of the image.
Improving these images is therefore very important. In such cases, the programs I have
developed for improving the quality of pictures are very useful.
I have developed efficient algorithms for recognizing circles and ellipses in
noisy images. These algorithms can be used for recognizing objects with a shape
approximating a circle; for example, apples, mushrooms, and so on. They can also be
used for recognizing bicycles in images of traffic because the wheels of bicycles are ideal
circles, but if the bicycle is positioned in such a way that the plane of its frame is not
orthogonal to the viewing ray, then its wheels look like ellipses rather than circles. I was
therefore forced to develop efficient algorithms for recognizing ellipses in noisy images
as well. My efforts were successful and the book contains a chapter devoted to the
recognition of bicycles in noisy images.
The book contains descriptions of numerous algorithms for image analysis,
including these:
xiii
Introduction
Among the algorithms for image improvement, the most important are the following:
xiv
PART I
Image Processing
CHAPTER 1
Introduction
This book contains descriptions of algorithms for image processing such as noise
reduction, including reduction of impulse noise, contrast enhancement, shading
correction, edge detection, and many others. The source codes of the projects in the
C# programming language implementing the algorithms are included on the book’s
companion web site. The source codes are Windows Forms projects rather than
Microsoft Foundation Classes Library (MFC) projects. The controls and the graphics in
these projects are implemented by means of simple and easily understandable methods.
I have chosen this way of implementing controls and graphics services rather than those
based on MFC because the integrated development environment (IDE) using MFC is
expensive. Besides that, the software using MFC is rather complicated. It includes many
different files in a project and the user is largely unable to understand the sense and
usefulness of these files. On the contrary, Windows Forms and its utility tools are free
and are easier to understand. They supply controls and graphics similar to that of MFC.
To provide fast processing of images we transform objects of the class Bitmap, which
is standard in Windows Forms, to objects of our class CImage, the methods of which are
fast because they use direct access to the set of pixels, whereas the standard way of using
Bitmap consists of implementing the relatively slow methods of GetPixel and SetPixel
or methods using LockBits, which are fast, but not usable for indexed images.
The class CImage is rather simple: It contains the properties width, height, and nBits
of the image and methods used in the actual project. My methods are described in the
chapters devoted to projects. Here is the definition of our class CImage.
class CImage
{ public Byte[] Grid;
public int width, height, nBits;
3
© Vladimir Kovalevsky 2019
V. Kovalevsky, Modern Algorithms for Image Processing, https://doi.org/10.1007/978-1-4842-4237-7_1
Chapter 1 Introduction
public CImage(int nx, int ny, int nbits, byte[] img) // constructor
{
width = nx;
height = ny;
nBits = nbits;
Grid = new byte[width * height * (nBits / 8)];
for (int i = 0; i < width * height * nBits / 8; i++) Grid[i] = img[i];
}
} //*********************** end of class CImage *****************
4
CHAPTER 2
Noise Reduction
Digital images are often distorted by random errors usually referred to as noise. There
are two primary kinds of noise: Gaussian noise and impulse noise (see Figure 2-1).
Gaussian noise is statistical noise having a probability distribution similar to a Gaussian
distribution. It arises mainly during acquisition (e.g., in a sensor). It could be caused
by poor illumination or by high temperature of the sensor. It comes from many natural
sources, such as the thermal vibrations of atoms in conductors, referred to as thermal
noise. It influences all pixels of the image.
Impulse noise, also called salt-and-pepper noise, presents itself as sparsely occurring
light and dark pixels. It comes from pulse distortions like those coming from electrical
welding near the electronic device taking up the image or due to improper storage of old
photographs. It influences a small part of the set of pixels.
Figure 2-1. Examples of noise: (a) Gaussian noise; (b) impulse noise
5
© Vladimir Kovalevsky 2019
V. Kovalevsky, Modern Algorithms for Image Processing, https://doi.org/10.1007/978-1-4842-4237-7_2
Chapter 2 Noise Reduction
6
Chapter 2 Noise Reduction
Near the border of the image the window lies partially outside of the image. In this
case, the computation loses its natural symmetry because only pixels inside the image
can be averaged. A reasonable way to solve the border problem is to take control of the
coordinates (x + xx, y + yy) if they point out of the image. If these coordinates are out
of the image the summation of the gray values must be suspended and the divisor nS
should not be incremented.
An example of the algorithm for averaging the colors is presented here. We often use
in our code comments denoted by lines of certain symbols: lines marked with = label the
start and the end of a loop, lines with minus signs label if instructions, and so on. This
makes the structure of the code more visible.
The simplest slow version of the algorithm has four nested for loops.
This is source code: The reader can copy it and put into its C# source, and it will
work.
The parameter HalfWidth is half the width of the gliding window. The width and
height of the window are both equal to 2*HalfWidth+1. The variables x and y in the
preceding code are the indexes of pixels in Grid, and xx and yy are the indexes of the
pixels inside the gliding averaging window.
7
Chapter 2 Noise Reduction
The computation of sum in the innermost for loop needs W × W additions and
W × W accesses to the image for each pixel of the input image, which is quite time
consuming.
Let us remark once again that averaging filters, although they are very efficient
at reducing the intensity of Gaussian noise, strongly blur the image. Therefore they
should not be used for noise reduction. I suggest using the sigma filter described later
in this chapter for this purpose. Averaging is used for the purpose of shading correction
(see Chapter 4). Therefore it will be mostly used with a rather large gliding window, as
large as half the width of the image. Then the simplest averaging routine becomes so
time consuming that it is practically impossible to use it. For example, in the case of a
grayscale image of 1000 × 1000 pixels and a gliding window of 400 × 400 pixels, which is
typical for shading correction, the runtime of the function Averaging on a standard PC
can take about 20 minutes.
8
Chapter 2 Noise Reduction
actual row of the image (Figure 2-2). The filter then directly calculates the sum over the
window having its central pixel at the beginning of a row; that is, by adding up the sums
saved in the columns. Then the window moves one pixel along the row, and the filter
calculates the sum for the next location by adding the value of the column sum at the
right border of the window and by subtracting the value of the column sum at the left
border. It is necessary to check whether the column to be added or subtracted is inside
the image. If it is not, the corresponding addition or subtraction must be skipped.
Old
window
Old column
W×W
1×W - - - -
New
column
1×W New
window
- + W×W
Actual row
+ + + +
+Y
Due to applying a similar procedure for the calculation of the column sums, the
average number of additions or subtractions per pixel is reduced to ≈2 + 2 = 4. The
sum inside the window must be calculated directly (i.e., by the addition of HalfWidth + 1
sums of columns) only for a pixel at the beginning of each row. The sums of columns
must be calculated directly only for the pixels of the first row of the image.
The filter updates the values of the columns when proceeding to the next row of
the image by adding the gray value below the lower end and subtracting the gray value
at the upper end of each column (Figure 2-2). In this case it is also necessary to check
whether the gray value to be added or subtracted is in the image. The filter divides (with
rounding) the sum by the number of pixels in the intersection of the window with the
image as soon as the sum of the gray values in a window is calculated and saves the
result in the corresponding pixel of the output image.
9
Chapter 2 Noise Reduction
Here is the source code of the simplest version of the fast averaging filter designed for
filtering grayscale images.
10
Chapter 2 Noise Reduction
SumWind += SumColmn[x];
nPixWind += nPixColmn[x];
}
if (yout >= 0 && xsub >= 0)
{
SumWind -= SumColmn[xsub];
nPixWind -= nPixColmn[xsub];
}
if (xout >= 0 && yout >= 0)
Grid[xout + width * yout] = (byte)((SumWind + nPixWind / 2) /
nPixWind);
} //===================== end for (int x = 0; =====================
} //====================== end for (int y = 0; ======================
return 1;
} //************************* end FastAverageM ***********************
I present next the universal source code of the fast average filter designed both for
color and grayscale images. It uses the variable int nbyte, which is set to 3 for color and
to 1 for grayscale images. We define for the sum of color intensities in the gliding window
of (2*hWind + 1)2 pixels an array SumWind[3] of three elements for sums of red, green,
and blue intensities. In the case of a grayscale image, only the element SumWind[0] is
being used. We use the following variables as described next.
The location with the coordinates (c+nbyte*x, nbyte*y) is the location of a
color channel, one of red, green, or blue channels whose intensity is added to the
corresponding element of the array SumColmn. The location (c+nbyte*x, nbyte*ysub)
is that of a color channel whose intensity is to be subtracted from SumColmn. The
variable c+nbyte*x is the abscissa of the short column whose contents are to be added
to SumWind[c]. The variable c+nbyte*xsub is the abscissa of the short column whose
contents are to be subtracted from SumWind[c].
11
Chapter 2 Noise Reduction
12
Chapter 2 Noise Reduction
This source code can be used in a corresponding Windows Forms project. It is not
the fastest version; it can be made 50 percent faster by removing the multiplications from
the interior loop. Some multiplications can be performed before starting the loop; some
others can be replaced by additions. A still faster version can be made containing the
following nine loops instead of the two loops with the indexes y and x in FastAverageM
or in FastAverageUni:
Each of the nine loops processes a part of the image (see Figure 2-3) that is either
hWind + 1 pixels wide or hWind + 1 pixels high.
13
Chapter 2 Noise Reduction
hWind+1
hWind+1
Figure 2-3. The nine parts of the image corresponding to the nine loops
This version of the fast averaging filter can be used only if the condition hWind ≤
min (width, height)/2 - 1 is fulfilled. In such a version of the routine the interior loops
with the variable xOut contain no multiplications and no if instructions. The routine
is about 60 percent faster than the previously described FastAverageM. However, it
is much longer and much more difficult to debug. The gain in speed is not essential:
This code uses 0.7 seconds to process a big color image of 2448 × 3264 pixels with the
gliding window of 1200 × 1200 pixels, whereas FastAverageM takes 1.16 seconds. These
calculation times are almost independent from the size of the gliding window: They are
0.68 and 1.12 seconds correspondingly for the case of a gliding window of 5 × 5 pixels.
14
Chapter 2 Noise Reduction
-Y
+Y
Figure 2-4. Example of weights in the gliding window of the classical Gauss filter
These values are called the weights of the filter. The weights corresponding to the
two-dimensional Gauss law are floats less than one:
15
Chapter 2 Noise Reduction
additions per color channel of a pixel independent from the size of the window. We have
calculated that the standard of the equivalent Gaussian distribution is proportional to the
half-width of the gliding window of the averaging filter. In Table 2-1 hWind is the half-width
of the averaging window, and Sigma is the standard of a random variable whose distribution
corresponds to the weights calculated by the triple filtering with the fast filter.
hWind 1 2 3 4 5
You can see that the relation Sigma/hWind tends to 1 when the width of the window
increases.
Figure 2-5 shows how the weights of the approximate Gauss filter differ from true
Gauss weights.
17
Chapter 2 Noise Reduction
Figure 2-7. The same image after filtering with median of 5 × 5 pixels
Using the median for the suppression of impulse noise is also not recommended
because it will delete objects having the shape of thin lines that have nothing to do with
noise. I suggest an efficient method in a later chapter.
TO THE SAME.
[In continuation.]
'Emma.'
CHAPTER XIII
The period which succeeded these events, though tedious in
wearing away, marked by no vicissitude, has left little impression
behind. The tenor of my days resembled the still surface of a
stagnant lake, embosomed in a deep cavern, over which the
refreshing breezes never sweep. Sad, vacant, inactive—the faculties
both of mind and body seemed almost suspended. I became weak,
languid, enervated—my disorder was a lethargy of soul. This was
gradually succeeded by disease of body:—an inactivity, so contrary
to all the habits of my past life, generated morbid humours, and
brought on a slow, remitting, fever. I recovered, by degrees, from
this attack, but remained for some time in a debilitated, though
convalescent, state. A few weeks after my disorder returned, lasted
longer, and left me still more weakened and depressed. A third time
it assailed me, at a shorter interval; and, though less violent, was
more protracted, and more exhausting.
19: Rousseau.
CHAPTER XIV
The winter came on severe and cold. Mrs Harley was forbidden to
expose herself to the frosty air, which seemed to invigorate my
languid frame. I was constituted her almoner, to distribute to the
neighbouring poor the scanty portion, which she was enabled, by a
rigid œconomy, to spare from her little income: yet the value of this
distribution had been more than redoubled, by the gentler charities
of kind accents, tender sympathy, and wholesome counsels. To these
indigent, but industrious, cottagers, I studied to be the worthy
representative of their amiable benefactress, and found my reward
in their grateful attachment, and the approving smiles of my friend.
'My dear Emma,' said she, 'this is a trying moment for us both. I
shall soon close my eyes, for ever, upon all worldly cares.—Still
cherish, in your pure and ingenuous mind, a friendship for my
Augustus—the darling of my soul! He may, in future, stand in need
of consolation. I had formed hopes—vain hopes!—in which you and
he were equally concerned. In the happiness of this partially-
favoured child—this idol of my affections—all mine was
concentrated. He has disappointed me, and I have lost the desire of
living—Yet, he has noble qualities!—Who, alas! is perfect? Summon
your fortitude, collect your powers, my child, for this interview!'
'Let them enter,' said she; and she raised herself, to receive them,
and assumed an aspect of composure.
I covered my face with my handkerchief—I heard the sound of
footsteps approaching the bed—I heard the murmurs of filial sorrow
—The voice of Augustus, in low and interrupted accents, struck upon
my ear—it thrilled through my nerves—I shuddered, involuntarily—
What a moment! My friend spoke a few words, in a faint tone.
'My children,' she added, 'repay to this dear girl,' laying her hand
upon mine, 'the debt of kindness I owe her—she has smoothed the
pillow of death—she is an orphan—she is tender and unfortunate.'
CHAPTER XV
After the performance of the last melancholy duties, this afflicted
family prepared to separate. I received from them, individually,
friendly offers of service, and expressions of acknowledgment, for
my tender attentions to their deceased parent. I declined, for the
present, their invitations, and profferred kindness, though uncertain
how to dispose of myself, or which way to direct my course.
Augustus behaved towards me with distant, cold, respect. I
observed in his features, under a constrained appearance of
composure, marks of deep and strong emotion. I recalled to my
mind the injunctions of my deceased friend—I yearned to pour into
his bosom the balm of sympathy, but, with an aspect bordering on
severity, he repressed the expression of those ingenuous feelings
which formed my character, and shunned the confidence I so
earnestly sought. Unfortunate love had, in my subdued and softened
mind, laid the foundation of a fervent and durable friendship—But
my love, my friendship, were equally contemned! I relinquished my
efforts—I shut myself in my chamber—and, in secret, indulged my
sorrows.
The house of my deceased friend was sold, and the effects
disposed of. On the day previous to their removal, and the departure
of the family for London, I stole into the library, at the close of the
evening, to view, for the last time, the scene of so many delightful,
so many afflicting emotions. A mysterious and sacred enchantment
is spread over every circumstance, even every inanimate object,
connected with the affections. To those who are strangers to these
delicate, yet powerful sympathies, this may appear ridiculous—but
the sensations are not the less genuine, nor the less in nature. I will
not attempt to analyse them, it is a subject upon which the language
of philosophy would appear frigid, and on which I feel myself every
moment on the verge of fanaticism. Yet, affections like these are not
so much weakness, as strength perhaps badly exerted. Rousseau
was, right, when he asserted, that, 'Common men know nothing of
violent sorrows, nor do great passions ever break out in weak minds.
Energy of sentiment is the characteristic of a noble soul.'
I was roused from this reverie by the sudden opening of the door.
Some person, whom the uncertain light prevented me from
distinguishing, walked across the room, with a slow and solemn
pace, and, after taking several turns backwards and forwards,
reclined on the sopha, remaining for some time perfectly still. A
tremor shook my nerves—unable either to speak, or to move, I
continued silent and trembling—my heart felt oppressed, almost to
suffocation—at length, a deep, convulsive sigh, forced its way.
The clouds had for some hours been gathering dark and gloomy.
Just as Augustus had reached the place where I stood, a flash of
lightning, pale, yet vivid, glanced suddenly across my startled sight,
and discovered to him the object which had alarmed him.
'It was not possible,' added I, 'to take leave of this house for ever,
without recalling a variety of affecting and melancholy ideas—I feel,
that I have lost my only friend.'
'This world,' said he, 'may not unaptly be compared to the rapids
on the American rivers—We are hurried, in a frail bark, down the
stream—It is in vain to resist its course—happy are those whose
voyage is ended!'
'My errors have been the errors of affection—Do they deserve this
rigor?'
'I know what you would alledge—that confidence, you had reason
to judge, was of a painful nature—it ought not to have been
extorted.'
I threw myself upon the floor, and, resting my head on the seat
which Augustus had so lately occupied, passed the night in cruel
conflict—a tempest more terrible than that which had recently spent
its force, shook my soul! The morning dawned, ere I had power to
remove myself from the fatal spot, where the measure of my
afflictions seemed filled up.—Virtue may conquer weakness, but who
can bear to be despised by those they love. The sun darted its
beams full upon me, but its splendour appeared mockery—hope and
joy were for ever excluded from my benighted spirit. The contempt
of the world, the scoffs of ignorance, the contumely of the proud, I
could have borne without shrinking—but to find myself rejected,
contemned, scorned, by him with whom, of all mankind, my heart
claimed kindred; by him for whom my youth, my health, my powers,
were consuming in silent anguish—who, instead of pouring balm into
the wound he had inflicted, administered only corrosives!—It was
too painful! I felt, that I had been a lavish prodigal—that I had
become a wretched bankrupt; that there was but one way to make
me happy and a thousand to make me miserable! Enfeebled and
exhausted, I crawled to my apartment, and, throwing myself on the
bed, gave a loose to the agony of my soul.
CHAPTER XVI
Under pretence of indisposition, I refused to meet the family. I
heard them depart. Too proud to accept of obligation, I had not
confided to them my plans, if plans they could be called, where no
distinct end was in view.
His eyes glistened, his countenance expressed the most lively, and
tender, commiseration, while, in a timid and respectful voice, he
made me offers of service, and entreated me to permit him to be
useful to me.
CHAPTER XVII
I took an early opportunity of addressing a few lines to Mr Francis,
informing him of my situation, and entreating his counsel. I waited a
week, impatiently, for his reply, but in vain: well acquainted with his
punctuality, and alarmed by this silence, I mentioned the step I had
taken, and my apprehensions, to Montague, who immediately
repaired, himself, to the house of Mr Francis; and, finding it shut up,
was informed by the neighbours, that Mr Francis had quitted
England, a short time before, in company with a friend, intending to
make a continental tour.
This intelligence was a new shock to me. I called on some of my
former acquaintance, mentioning to them my wish of procuring
pupils, or of engaging in any other occupation fitted to my talents. I
was received by some with civility, by others with coldness, but
every one appeared too much engrossed by his own affairs to give
himself the trouble of making any great exertion for others.
I received his civilities with the less scruple, from the information I
had received of his engagement with Miss Morton; which, with his
knowledge of my unhappy attachment, I thought, precluded every
idea of a renewal of those sentiments he had formerly professed for
me.
20: Helvetius.
CHAPTER XVIII
Some weeks elapsed, and I heard no more from my banker. A
slight indisposition confined me to the house. One evening, Mr
Montague, coming to my apartment to enquire after my health,
brought with him a newspaper (as was his frequent custom), and,
finding me unwell, and dispirited, began to read some parts from it
aloud, in the hope of amusing me. Among the articles of home
intelligence, a paragraph stated—'The failure of a considerable
mercantile house, which had created an alarm upon the Exchange,
as, it was apprehended, some important consequences would follow
in the commercial world. A great banking-house, it was hinted, not
many miles from ——, was likely to be affected, by some rumours, in
connection with this business, which had occasioned a considerable
run upon it for the last two or three days.'
My attention was roused—I eagerly held out my hand for the
paper, and perused this alarming paragraph again and again, without
observing the surprize expressed in the countenance of Montague,
who was at a loss to conceive why this intelligence should be
affecting to me.—I sat, for some minutes, involved in thought, till a
question from my companion, several times repeated, occasioned
me to start. I immediately recollected myself, and tried to reason
away my fears, as vague and groundless. I was about to explain the
nature of them to my friend—secretly accusing myself for not having
done so sooner, and availed myself of his advice, when a servant,
entering, put a letter into his hand.
'You leave me, then!' said I—'I lose my only remaining friend!'
'Do not distress yourself, my lovely Emma,' said he; 'I will be your
friend—your guardian—' (and he added, in a low, yet fervent,
accent)—'your husband!'
CHAPTER XIX
Mr Montague presented me to his relations and friends, by whom I
was received with a flattering distinction. My wearied spirits began
now to find repose. My husband was much occupied in the duties of
his profession. We had a respectable circle of acquaintance: In the
intervals of social engagement, and domestic employment, ever
thirsting after knowledge, I occasionally applied myself to the study
of physic, anatomy, and surgery, with the various branches of
science connected with them; by which means I frequently rendered
myself essentially serviceable to my friend; and, by exercising my
understanding and humanity, strengthened my mind, and stilled the
importunate suggestions of a heart too exquisitely sensible.
'Tell me, then, sincerely—I know you will not deceive me—Have
you ever felt for me those sentiments with which Augustus Harley
inspired you?'
CHAPTER XX
About six weeks after my recovery from childbed, some affairs of
importance called Mr Montague to London. Three days after he had
quitted me, as, bending over the cradle of my babe, I contemplated
in silence its tranquil slumbers, I was alarmed by an uncommon
confusion in the lower part of the house. Hastening down stairs, to
enquire into the cause, I was informed—that a gentleman, in
passing through the town, had been thrown from his horse, that he
was taken up senseless, and, as was customary in cases of accident,
had been brought into our house, that he might receive assistance.
Mr Montague was from home, a young gentleman who resided
with us, and assisted my husband in his profession, was also absent,
visiting a patient. Having myself acquired some knowledge of
surgery, I went immediately into the hall to give the necessary
directions on the occasion. The gentleman was lying on the floor,
without any signs of life. I desired the people to withdraw, who,
crowding round with sincere, but useless sympathy, obstructed the
circulation of air. Approaching the unfortunate man, I instantly
recognised the well-known features, though much altered, wan and
sunk, of Augustus Harley. Staggering a few paces backward—a
death-like sickness overspread my heart—a crowd of confused and
terrible emotions rushed through my mind.—But a momentary
reflection recalled my scattered thoughts. Once before, I had saved
from death an object so fatal to my repose. I exerted all my powers,
his hair was clotted, and his face disfigured with blood; I ordered the
servants to raise and carry him to an adjoining apartment, wherein
was a large, low sopha, on which they laid him. Carefully washing
the blood from the wound, I found he had received a dangerous
contusion in his head, but that the scull, as I had at first
apprehended, was not fractured. I cut the hair from the wounded
part, and applied a proper bandage. I did more—no other assistance
being at hand, I ventured to open a vein: the blood presently flowed
freely, and he began to revive. I bathed his temples, and sprinkled
the room with vinegar, opened the windows to let the air pass freely
through, raised his head with the pillows of the sopha, and sprinkled
his face and breast with cold water. I held his hand in mine—I felt
the languid and wavering pulse quicken—I fixed my eyes upon his
face—at that moment every thing else was forgotten, and my nerves
seemed firmly braced by my exertions.
He shut his eyes, and remained silent. I mixed for him a cordial
and composing medicine, and entreating him to take it, he once
more raised himself, and looked up.—Our eyes met, his were wild
and unsettled.
'You are an excellent surgeon,' said he, 'you acted very properly,
but,' observing my pallid looks, 'I wish your little nursery may not
suffer from your humanity'—
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com